c 輸入結束與EOF

2021-06-21 08:18:22 字數 2286 閱讀 6092

1.while((scanf"%d,%d",&m,&n)==2)

2.while((scanf"%d,%d",&m,&n)!=eof)

3.while(cin>>m>>n)

( scanf("%d %d", &n, &m), n+m) -- 這是「逗號」表示式。

第乙個 表示式 是 scanf("%d%d", &n, &m),

第二個 表示式 是 n+m

「逗號」表示式 運算順序從左到右依表示式次序執行,

但是 ,「逗號」表示式 的結果 等於 最後乙個 表示式的結果。

例如:表示式1,表示式2,表示式3,.....表示式n

結果 等於 表示式n 的結果

我們 這裡先 執行 scanf("%d %d", &n, &m),讀入2個整數,n,m,

送返 2 -- 如果成功 讀入了這2個數

送返 1 -- 如果只成功 讀入了1個數

送返 0 -- 如果輸入失敗。

(自己看scanf函式說明,了解函式送返什麼)

再執行n+m, 這裡的 n m 用 scanf讀 入的 值

「逗號」表示式 結果 等於 n+m

while( 逗號表示式 結果){} 等同於

while( 真還是假 ){}

c 語言規定 0 為假, 非0 為真。

也就是 n+m 等於 0, while (假){} 就做不迴圈體。

n+m 不等於 0, while (真){} 就執行一次迴圈體,並再做一次上述「逗號」表示式。

意思是m+n不等於0時就執行一次迴圈體,並讀入一次新資料,直到 m+n 等於零為止。

eof

在計算機術語縮寫通常為 eof(end of file),在

作業系統

決定資料來源無更多的資料可讀取。資料來源通常稱為檔案或串流。

在 c語言,或更精確地說成 c標準函式庫中表示:檔案結束符(end of file)。在while迴圈中以eof作為檔案結束標誌,這種以eof作為檔案結束標誌的檔案,必須是文字檔案。在文字檔案中,資料都是以字元的

ascii

**值的形式存放。我們知道,ascii**值的範圍是0~255,不可能出現-1,因此可以用eof作為檔案結束標誌。

檔案訪問

或其它 i/o 功能可能傳回等於象徵符號值 (巨集) eof 指示檔案結束的情形發生。實際上 eof 的值通常為 -1,但它依系統有所不同。巨集 eof 會在編譯原始碼前展開實際值給預處理器。

c語言中,eof常被作為檔案結束的標誌。還有很多檔案處理函式處錯誤後的返回值也是eof,因此常被用來判斷呼叫乙個函式是否成功。

例如:#include

int main()

return 0;

}在 unix end-of-file 表示能從交談式 shell (終端機) 送出 ctrl+d (習慣性標準)。在微軟的 dos 與 windows 能送出 ctrl+z。在某些例子處理純文字檔案或從"字元裝置"讀入資料,

微軟ms-dos

的 shell 或作業系統公用程式會加入 asciicontrol-z 字元到磁碟檔案結束處 (儘管基本核心 

msdos.sys

檔案寫入呼叫從未附加 control-z)。這是向下相容於一些奇特的 cp/m 功能,從 cp/m 檔案系統 只能就記錄的檔案長度分配多少 128 位元 "記錄"。ms-dos 檔案系統從一開始就能精確的記錄檔案的位元長度。

ascii控制字元在字串流是 out-of-band 不可列印字元。通常錶可讀的助憶碼。

在控制台要輸入eof的話 按alt+65535就可以了

化學中,亦指電滲流,electroosmotic flow。c語言中,當把資料以二進位制形式存放到檔案中時,就會有-1值的出現,此時不能採用eof作為二進位制檔案的結束標誌。為解決這個問題,

ansi c

提供乙個

feof

函式,用來判斷檔案是否結束。如果遇到檔案結束,函式feof(fp)的值為1,否則為0.feof函式既可用以判斷二進位制檔案是否結束,也可以用以判斷文字檔案是否結束。

例如:編寫程式,用於把乙個文字檔案(原始檔)複製到另乙個檔案(目的檔案)中。原始檔名為file_a.dat,目的檔名為file_b.dat。程式如下:

#include

#include

#include

#include

void filecopy (file*,file*);

main ( )

void filecopy ( file*fpin, file*fpout )

/*逐個字元進行複製*/}}

scanf 的輸入格式與 EOF 如何結束迴圈

參考 1,scanf d n 以回車作為輸出的結束標誌。返回值為 eof,可以按下下述按鈕結束迴圈,ctrl z 回車 ctrl z 回車 ctrl z 回車 2,scanf s s 以空白字元作為輸出的結束標誌,該空白字元會被丟棄,但要回車才能進入迴圈體內。返回值為 eof,可以按下下述按鈕結束迴...

python在演算法題中判斷輸入結束 EOF

有些演算法題是這樣要求的,一行輸入一行資料,然後沒有規定我要輸入多少行,你要自行判斷檔案結束eof,否則是會runtime error的,因為oj內部都是用檔案來進行讀寫的。例如a b,每一行輸入a b,計算a b的結果。一般這種嘛,c c 很簡單了,就是scanf判斷一下 eof就完事了,但是py...

什麼是EOF ,如何輸入EOF

估計許多同學會遇到這樣的問題,c getchar eof 然後如何去輸入eof讓程式停止呢 看程式int main void return 0 答案是 windows下面ctrl z就相當於eof linux下ctrl d 這個要注意,不同的系統平台可能不同。不乏嘗試一些 ctrl z ctrl c...