A. c語言裡面的EOF的用法及意義
EOF是end of file 的簡寫, 如讀到文件末尾,則函數返回一個 EOF值,它是一個宏定義,一般值是-1。使用示例如下:
#include<stdio.h>
intmain()
{
charc;
while((c=getchar())!=EOF){
putchar(c);
}
return0;
}
說明:在Windows上按CTRL+Z鍵,表示EOF。
注意:EOF雖然是文件結束符,但並不是在任何情況下輸入Ctrl+D(Windows下Ctrl+Z)都能夠實現文件結束的功能,只有在下列的條件下,才作為文件結束符。
(1)遇到getcahr函數執行時,要輸入第一個字元時就直接輸入Ctrl+D,就可以跳出getchar(),去執行程序的其他部分;
(2)在前面輸入的字元為換行符時,接著輸入Ctrl+D;
(3)在前面有字元輸入且不為換行符時,要連著輸入兩次Ctrl+D,這時第二次輸入的Ctrl+D起到文件結束符的功能。
B. C語言中的EOF
可以繼續輸入 EOF表示文件的結尾
再stdio.h裡面有定義 值為-1 按回車也會繼續執行 直到循環遇到EOF結束符為止
C. c語言,文件出入輸出中的EOF
這是在講一個反例,即:這樣寫代碼是有問題的,問題表現在兩個地方:
while( ch != EOF ) //問題一:這時的ch還沒有確定的值,所以,進行比較是合理的!
{
ch=getchar();
putchar(ch); //問題二:這里並沒有考慮ch是字元,還是EOF
}
D. 怎麼編寫一個列印EOF值的程序我對EOF的概念很模糊
這個看語言了……不同語言、平台、編譯器都可能有不同定義
比如大部分c的EOF值是指-1
這個值僅僅用來標識出文件已經到達末尾,你可以查找庫函數定義文件里EOF取值,但這不具備可移植性或實用性。
你沒辦法去決定一個文件的EOF在哪裡,只有當文件或流到達末尾時候,I/O會探測到並返回EOF
c語言中使用函數確定是否EOF
c++中會用一個bool變數來確定
E. C語言里的EOF(結束程序)怎麼用
在C語言中,或更精確地說成C標准函數庫中表示文件結束符(end of file)。在while循環中以EOF作為文件結束標志,這種以EOF作為文件結束標志的文件,必須是文本文件。在文本文件中,數據都是以字元的ASCII代碼值的形式存放。
一般EOF的值為-1,ASCII代碼值的范圍是0~255,不可能出現-1,因此可以用EOF作為文件結束標志。
EOF在windows對應的按鍵是CTRL+Z鍵,在linux系統上對應的按鍵是CTRL+D。比如下面的代碼:
#include<stdio.h>
intmain()
{
intc;
while((c=getchar())!=EOF)
putchar(c);
return0;
}
運行程序按CTRL+Z鍵,即會顯示「^Z",再次按回車鍵即可退出程序。
F. C語言中EOF是什麼意思
eod 是end of file的縮寫 。
你在用函數讀入文件數據的時候,函數總會返回一個狀態,是讀取成功還是失敗,那麼這個狀態怎麼表示呢,所以就約定俗成定義一個標識符表示這個狀態,就有了EOF。
scanf函數只有在第一個參數為NULL(空指針)的情況下,才可能返回EOF,否則,返回成功格式化並賦值的參數個數(>=0)。
所以,這個循環,將是一個死循環。
(6)c語言列印eof擴展閱讀:
EOF是一個計算機術語,為End Of File的縮寫,在操作系統中表示資料源無更多的資料可讀取。資料源通常稱為檔案或串流。通常在文本的最後存在此字元表示資料結束。
在C語言中,或更精確地說成C標准函數庫中表示文件結束符(end of file)。在while循環中以EOF作為文件結束標志,這種以EOF作為文件結束標志的文件,必須是文本文件。
在文本文件中,數據都是以字元的ASCII代碼值的形式存放。我們知道,ASCII代碼值的范圍是0~127,不可能出現-1,因此可以用EOF作為文件結束標志。
G. C語言輸入EOF之後怎麼看輸出結果
正常來說 要以EOF結束輸入, 那麼在程序中會檢查的.
比如 while(~scanf(.....))這樣的.
檢查到EOF後會繼續執行剩餘代碼, 如果有輸出 自然會輸出到運行窗口.
如果沒有顯示,那麼可能沒檢查到EOF
windows的EOF, 必須換行後, 輸入ctrl Z , 再回車才行.
H. c語言中EOF的用法
EOF其實是整數-1,用於從文件讀取數據的時候表示已經超越文件末尾這種錯誤狀態。如果IO操作的結果是EOF,一般就意味著這次IO是失敗的。
I. C語言關於列印EOF的問題
EOF表示end of the file
在C語言頭文件中默認定義為了-1.
所以如果你程序運行時輸入ctrl+Z(表示文件結束輸入)
那麼結果就會輸出-1.
如果你改成
printf( "%c\n", c);注意超過了127的字元都是無法顯示的,所以你也看不到EOF
J. C語言如何輸入EOF
windows:
首先在最後一行結束後(此時未換行)輸入ENTER鍵,新起一行,再輸入ctrl+z,再輸入時ENTER鍵即可。
Linux:
直接按CTRL+D快捷鍵
示例:
#include<iostream>
using namespce std;
void main()
{
int a;
while(cin >>a)
{
;//循環輸入的代碼塊
}
}
(10)c語言列印eof擴展閱讀:
C語言中,當把數據以二進制形式存放到文件中時,就會有-1值的出現,此時不能採用EOF作為二進制文件的結束標志。為解決這個問題,ANSI C提供一個feof函數,用來判斷文件是否結束。
如果遇到文件結束,函數feof(fp)的值為1,否則為0.feof函數既可用以判斷二進制文件是否結束,也可以用以判斷文本文件是否結束。
例如:編寫程序,用於把一個文本文件(源文件)復制到另一個文件(目的文件)中。源文件名為file_a.dat,目的文件名為file_b.dat。程序如下:
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
void file(FILE *,FILE *);
main ( )
{
FILE*fpin,*fpout;
fpin =fopen ("file_a.dat","r"); /*打開輸入文件*/
fpout = fopen ("file_b.dat","w"); /*打開輸出文件*/
file( fpin,fpout ); /*把fpin所指文件中的內容輸出到fpout所指文件中*/
fclose ( fpin );fclose ( fpout ); /*關閉輸入輸出文件*/
}
void file( FILE *fpin, FILE *fpout )
{
char ch;
ch = getc ( fpin ); /*先讀一次文件再去判文件是否結束*/
while ( !feof( fpin ) ) /*當未到文件末尾是進行循環*/
{
putc ( ch, fpout ); ch= getc ( fpin );} /*逐個字元進行復制*/
}