E0F
在C語言中,或更精確地說成C標(biāo)準(zhǔn)函式庫中表示文件結(jié)束符(end of file)。在while循環(huán)中以EOF作為文件結(jié)束標(biāo)志,這種以EOF作為文件結(jié)束標(biāo)志的文件,必須是文本文件。在文本文件中,數(shù)據(jù)都是以字符的ASCII代碼值的形式存放。我們知道,ASCII代碼值的范圍是0~255,不可能出現(xiàn)-1,因此可以用EOF作為文件結(jié)束標(biāo)志
還有很多文件處理函數(shù)處錯誤后的返回值也是EOF,因此常被用來判斷調(diào)用一個函數(shù)是否成功。
如linux中read函數(shù)
用法: intread(int handle, void *buf, int nbyte);read()會把參數(shù)handle所指的文件傳送nbyte個字節(jié)到buf指針所指的內(nèi)存中。若參數(shù)nbyte為0,則read()不會有作用并返回0。返回值為實(shí)際讀取到的字節(jié)數(shù),如果返回0,表示已到達(dá)文件尾或無可讀取的數(shù)據(jù)。
_________________________________________________
#include <stdio.h>main() {int c, n1;?????? n1 = 0; ?????? while ((c = getchar()) != EOF) ?????? if (c == '\n')??? ++n1;printf("%d\n", n1);} | getchar()函數(shù)在讀到文件結(jié)束符或者遇到錯誤時(shí)返回EOF,這個程序可以在控制臺中輸入Ctrl?+?Z組合鍵來結(jié)束。 |
還有一個要注意的:
全局變量是在編譯期間初始化的,不能利用函數(shù)進(jìn)行初始化。如
#include<...> int a=5; int geta() {return a; } int b=geta();//initializer?? element??is?? not?? constant?int main() {return 0; }<span style="font-family: Arial, Helvetica, sans-serif;">解決方式之一就是把全局變量在函數(shù)中賦值;</span>總結(jié)
- 上一篇: WIN11安装node.js
- 下一篇: 详解爬取搜狐号自媒体的所有文章