C C 標準輸入輸出問題

2021-10-24 15:50:51 字數 1351 閱讀 2427

輸入輸出格式

scnaf()電腦會根據佔位符判斷怎麼讀 如scanf("%f%f",&a,&b)

兩個數字用空格隔開就行,因為這裡不是字元型,不會把空格輸進去

但while(scanf("%d%c%c",&size,¢re,&edge)!=eof)

這裡要不能把空格打上去,會當字元賦給變數

p.s樣例輸入為 11ba 5ab 這種換行形式,自己手動測試的時候可以用空格隔開,如 11ba 5ab

(王道考研書例2.5疊筐問題)

cin預設遇到空格,輸入結束 建議用getline,這個是遇到enter,才當輸入結束

用scanf只能錄入連續的字串,遇到空格就結束了,用gets()可以錄入帶空格的字串,它遇回車才結束

scanf( )函式和gets( )函式都可用於輸入字串,但在功能上有區別。若想從鍵盤上輸入字串"hi

hello",則應該使用__gets__函式。

gets可以接收空格,回車結束,gets(s)是輸入一行;而scanf(%s)遇到空格、回車和tab鍵都會認為輸入結束,所以它不能接收空格。

char string[15]; gets(string); /遇到回車認為輸入結束/

scanf("%s",string); /遇到空格認為輸入結束/

所以在輸入整行時,應該使用gets輸入。

關於不確定行數的輸入 有些時候 ,問題並沒有給定輸入資料的行數,也沒有給出輸入結束的標記。 問題1:將字串大寫變小寫,小寫變大寫

輸入:n行字串,每一行字串不超過300 輸出:n行字串。

這些題目並沒有輸入資料到底有多少,也沒有結束標記。此時,我們該如何讀入資料呢?

假設題目是以檔案輸入輸出。則檔案的末尾必有乙個檔案結束標記。該標記為不可見字元,我們用eof來表示。

那麼在輸入的時候,如果我們用的是fscanf,我們可以在以fscanf(……)!=eof來作為迴圈的條件。如果到了檔案末尾,則fscanf()將返回eof。

如果我們用的是cin,則可以用cin.eof()來作為迴圈的條件,如果到了檔案末尾,則cin.eof()返回真,否則返回假。

也可以用while(cin>>ss),讀入檔案結束符時,cin返回0。

如果用的是getline(),如果到了檔案末尾getline也會返回0。

此外,如果用gets(ss),遇到檔案尾,也會返回0.

cin會過濾掉不可見字元(如空格、回車、tab等) 接收乙個字串,可以接收空格並輸出

cpp getline(cin,str);

遇到輸入分幾行,書上是三個一塊輸入,輸出三個一塊(這種一般有退出判斷語句,比如說輸入0退出),實際上自己寫乙個,按乙個回車,出乙個結果,不放心還可以在文字裡面寫好三行,複製到控制台裡面

C 標準輸入輸出問題

c 中標準輸入 遇到檔案結束符時的行為研究 根據檔案結束符出現的位置 的行為可分為兩種 1 ctri z前面沒有任何字元時 按照檔案結束符處理cin.good 返回false include includeusing std string using std cout using std cin u...

字元輸入,輸出問題

2007 11 23 23 03 yhy19820816 瀏覽 0 次 scanf s c 把字串輸完就退出了,為什麼他們在一起時,單個字元輸不進來?scanf s c 這樣就輸進來了,我不太懂,為什麼他們組合的時候必須加乙個明確的分隔符?scanf d f d c 沒有分隔符,但輸入都是正常的啊....

多次輸入輸出問題

eof初見面,鍵盤快取區,if迴圈的逗號表示式 1 可嘗試用eof來作為迴圈結束標誌,eof在windows中為ctrl c 在 unix中一般是ctrl c,說的簡單一點也就是,只要你不在windows系統中使用ctrl c,迴圈就會一直執行,不會出現 按任意鍵繼續 表示編譯結束 2 並且要麼明確...