多行輸入以及結束輸入

2021-10-01 15:10:42 字數 2390 閱讀 6418

一般題中要求輸入多組資料的意思就是讀取數量不定的輸入資料(不能確定輸入資料的數量),在這種情況下,需要不斷讀取資料直至沒有新的輸入為止。

#include int main()

return 0;

}

上面是使用c語言的的方法,把輸入語句作為while迴圈的判斷條件,當輸入資料不是檔案結束符(eof)的時候,就可以實現連續輸入

沒有明確指出輸入什麼時候結束

如果是這種情況,我們預設是以「檔案結束」(eof)為結束標誌。

可以將上述的eof改為』\n』,裡面改為printf(』』%d,a』』),表示為輸入不為換行時持續輸入,保證一行輸入多個不定量資料。

#include using namespace std;

int main()

return 0;

}

方法二是用c++for迴圈實現,將輸入語句作為for迴圈的condition部分,而expression部分省略不寫,因為條件部分能改變i的值,所以這個迴圈無需表示式部分,其中,條件部分不斷檢查輸入流的內容,只要讀取完所有的輸入或者遇到乙個輸入錯誤就終止迴圈

c語言

1.知道輸入資料組數n

scanf("%d",&n);

whlie(n–)

2.沒有資料總數,以eof結束

可能用的幾個函式:

scanf():

while(scanf("%s|%d")!=eof)

getchar():讀入乙個字元

whlie((ch=getchar())!=eof)

gets():讀入一行

while(gets(buf)!=null)

用getchar,gets注意讀入換行符.

3.以0或-1結束的輸入.

while(scanf("%d",&n),n!=0)

getline讀字串時遇到換行符結束,用於讀一整行

char str[buffer];

while (cin.getline(str, buffer))

string str;

while (getline(cin, str))

cin/cout要比scanf/printf慢一些,盡可能使用scanf/printf以避免測試大量資料時因為輸入輸出慢而導致tle. putchar/getchar要比scanf/printf更快

包含其他輸入後讀入多行字串

例如一些程式設計題要求先輸入字串行數,然後再一行一行讀入字串。如果正常順寫程式設計的話,會發現第一行字串讀入的是空,後續才能正常錄入每行字串。

這是因為第一行輸入乙個int資料後,換行符並沒有被忽略,直接被準備讀入第一行字串的getline俘獲。

所以需要在第一行輸入乙個int資料後,呼叫cin.ignore()忽略下面的乙個流錄入,將其拋棄。

int n;

cin>>n;

cin.

ignore()

;//取消換行鍵的讀入

string strcinline[

100]

;for

(int i =

0;i)getline

(cin,strcinline[i]

);

或者給strcinline動態申請空間,節省空間開銷。

int n;

cin>>n;

cin.

ignore()

;//取消換行鍵的讀入

string* strcinline =

new string[n]

;for

(int i =

0;i)getline

(cin,strcinline[i]);

delete

strcinline;

//記得釋放動態空間

strcinline =

null

;

在c語言中,或更精確地說成c標準函式庫中表示檔案結束符(end of file)。在while迴圈中以eof作為檔案結束標誌,這種以eof作為檔案結束標誌的檔案,必須是文字檔案。在文字檔案中,資料都是以字元的ascii**值的形式存放。我們知道,ascii**值的範圍是0~127,不可能出現-1,因此可以用eof作為檔案結束標誌。

main()

}

當沒有輸入的時候,getchar會返回乙個特殊值,這個值就是eof。

acm 新手入門 之 如何實現多組輸入輸出

c/c++中輸入多組資料方法

c/c++讀入多行字串string

後面的文章也有很好的解決方法,可以一起看看

c++:如何輸入多行數字/字串

處理多行輸入資料

要求如上圖,如下 include include include 要使用stringstream,必須先加入這一行 using namespace std int main cout sum endl getline使用時可以接受空格並輸出,同時可以指定分隔符 getline ss,temp,參考資...

cin 回車結束輸入

一般來說,cin遇到空格和回車都會忽略,但昨天做一道ccf的試題,要求是輸入一些資料,這些資料長度不定,而且不能輸入別的資料 比如特定的結束符或者ctrl z 這就要求輸入必須能識別兩個回車並自動結束 結果我沒做出來 嗯,回來之後查了一下這個問題,這個問題還是蠻簡單的,一般來說,你在cmd裡輸入的資...

關於判斷輸入結束

我們平時在oj上提交題目的時候,輸入可以在while後面的小括號裡處理,由於c 的流會自動判斷檔案的結尾,操作起來很簡單,如下題 problem description calculate a b.input each line will contain two integers a and b.p...