本文目錄一覽:
C語言中feof的用法疑問
feof
只是「事後」檢查,它不會改變文件流的狀態,甚至根本不會去讀文件,它只會檢查相應的
FILE
結構體的
eof
標記。某種意義上,
feof
就是面向對象中的
getter
方法。
只有別的函數從文件裡面讀東西然後因為碰到錯誤於是需要的東西沒有讀出來,才會把
對應的
FILE
結構體
的
eof
標記設為真。
c語言 while (!feof(fp))?是什麼意思啊?謝謝
feof()是文件結束檢測函數,如果沒有結束,返回值是0,結束了是1;
由於feof(fp)返回0才是沒有結束,所以通常寫成while(!feof(fp)),這樣使得沒有結束時進行循環;
C語言僅產生少量的機器語言以及不需要任何運行環境支持便能運行的高效率程序設計語言。儘管C語言提供了許多低級處理的功能,但仍然保持著跨平台的特性,以一個標準規格寫出的C語言程序可在包括類似嵌入式處理器以及超級計算機等作業平台的許多計算機平台上進行編譯。
擴展資料:
C語言作為一門面向過程的計算機編程語言,與C++、Java等面向對象編程語言有所不同。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、僅產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。
C語言描述問題比彙編語言迅速、工作量小、可讀性好、易於調試、修改和移植,而代碼質量與彙編語言相當。C語言一般只比彙編語言代碼生成的目標程序效率低10%~20%。因此,C語言可以編寫系統軟體。
不太理解C語言中的!feof(fp)?
feof是c標準函數,原型:int feof(FILE *stream)是feof函數原型,文件結束返回非0值,否則返回0。fp對應上面的文件流,!是bool取反的意思,!feof(fp)組合起來就是文件尚未結束的邏輯。
feof(fp)是什麼意思?每一個字母如何解釋?
feof是C語言標準庫函數,其原型在stdio.h中,其功能是檢測流上的文件結束符,如果文件結束,則返回非0值,否則返回0(即,文件結束:返回非0值,文件未結束,返回0值),文件結束符只能被clearerr()清除。(這裡的檢測流上的文件結束符就相當於音效卡檢測電流信號的一個過程)
int feof(FILE *stream);
參數
流 :FILE結構的指針
注意:feof判斷文件結束是通過讀取函數fread/fscanf等返回錯誤來識別的,故而判斷文件是否結束應該是在讀取函數之後進行判斷。比如,在while循環讀取一個文件時,如果是在讀取函數之前進行判斷,則如果文件最後一行是空白行,可能會造成內存錯誤。
擴展資料
相關函數
getc()
功能:函數從流中返回一個字元值。
語法:int getc(FILE * stream)
返回值:整數值。
函數種類:「stdio.h」
內容說明:此函數和fgetc函數相似,但它是以一個宏來實現的。另外它將不止一次地計算流參數咖,這對通常的宏的規則來說是一個例外。getc是一個已經高度優化的函數,所以該函數是進行單個字元讀操作的最好的函數。
參考:如fputc();fgetc();putc();fopen()。
fputs()
功能:將字元串中的內容寫到指定的流中。
語法: int fputs(const char *s,FILE * stream)
返回值:整數值。
函數種類:「stdio.h」
內容說明:函數將字元串指針s所指向的字元串中的內容寫到流stream中。標誌結束的空字元(NULL)不寫。函數也不另外增加一個換行符。只是輸出字元串中的所有字元。 函數操作成功時返回值為0,否則返回非0值。
如果流是以文本形式打開的,就會對有些字元進行翻譯操作。這意味著字元串可能會與文件內容之間沒有一一對應的映射關係。然而,當文件以二進位打開時,不發生字元翻譯,在字元串與文件內容之間存在一一對應的映射關係。
參考資料來源:百度百科-fgetc
參考資料來源:百度百科-feof
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/195644.html