windows:
首先在最后一行结束后(此时未换行)输入ENTER键,新起一行,再输入ctrl+z,再输入时ENTER键即可。
Linux:
直接按CTRL+D快捷键
示例:
#include<iostream>
using namespce std;
void main()
{
int a;
while(cin >>a)
{
;//循环输入的代码块
}
}
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 filecopy(FILE *,FILE *);
main ( )
{
FILE*fpin,*fpout;
fpin =fopen ("file_a.dat","r"); /*打开输入文件*/
fpout = fopen ("file_b.dat","w"); /*打开输出文件*/
filecopy( fpin,fpout ); /*把fpin所指文件中的内容输出到fpout所指文件中*/
fclose ( fpin );fclose ( fpout ); /*关闭输入输出文件*/
}
void filecopy( FILE *fpin, FILE *fpout )
{
char ch;
ch = getc ( fpin ); /*先读一次文件再去判文件是否结束*/
while ( !feof( fpin ) ) /*当未到文件末尾是进行循环*/
{
putc ( ch, fpout ); ch= getc ( fpin );} /*逐个字符进行复制*/
}
不同的系统方法不同:
linux系统下,在输入回车换行后的空行位置,按 ctrl+d (先按ctrl键,不放,再按d键)。
windows系统下,在输入回车换行后的空行位置,按 ctrl+z,再回车确认。
EOF 是个宏,其意思是:End Of File,文件尾标志。 从数值上来看,就是整数-1。
在C语言的头文件中对其进行了宏定义:
当读文件操作时,遇到文件结束位置或读数据出错均会返回 EOF。 (C语言中所有的输入输出操作均是按读文件的思想来设计的,或者说,是文件操作的一种特例,如getchar()就是fgetc(stdin) 的一个宏 )
EOF作为文件结束符时的情况:
EOF虽然是文件结束符,但并不是在任何情况下输入Ctrl+D(Windows下Ctrl+Z)都能够实现文件结束的功能,只有在下列的条件下,才作为文件结束符。
(1)遇到getcahr函数执行时,要输入第一个字符时就直接输入Ctrl+D,就可以跳出getchar(),去执行程序的其他部分;
(2)在前面输入的字符为换行符时,接着输入Ctrl+D;
(3)在前面有字符输入且不为换行符时,要连着输入两次Ctrl+D,这时第二次输入的Ctrl+D起到文件结束符的功能。
参考资料:百度百科C语言
本回答被网友采纳EOF 是个宏,其意思是:End Of File,文件尾标志。 从数值上来看,就是整数-1
在C语言的头文件中对其进行了宏定义:
libio.h: # define EOF (-1)当读文件操作时,遇到文件结束位置或读数据出错均会返回 EOF。 (C语言中所有的输入输出操作均是按读文件的思想来设计的,或者说,是文件操作的一种特例,如getchar()就是fgetc(stdin) 的一个宏 )
那么,如何在键盘输入时,产生EOF呢? 不同的系统方法不同:
linux系统下,在输入回车换行后的空行位置,按 ctrl+d (先按ctrl键,不放,再按d键)
windows系统下,在输入回车换行后的空行位置,按 ctrl+z,再回车确认
以下代码供参考:
#include <stdio.h>C语言中,怎么用EOF结束输入
首先在最后一行结束后(此时未换行)输入ENTER键,新起一行,再输入ctrl+z,再输入时ENTER键即可。Linux:直接按CTRL+D快捷键 示例:include<iostream> using namespce std;void main(){ int a;while(cin >>a){ ;\/\/循环输入的代码块 } } ...
c语言程序设计 怎么以输入EOF结束
char s[100];while(1){ if(gets(s) == NULL) break;\/\/ 当gets返回NULL时代表遇到EOF,结束输入。} 当输入为文件时,遇到文件结尾C语言可以自动识别EOF,但如果输入为命令行交互模式,那么需要手动输入EOF. 在windows平台输入EOF的方法为,同时按下ctrl和z键。如果是unix\/linux平台,则需要同时按...
C语言这题怎么用EOF结束啊
EOF结束的话,可以这样用:int n;while(scanf("%d",&n)!=EOF){ \/*add your code*\/ } 你的问题:for (i = 0; i < n; i++)for (j = 0; j < n; j++){ scanf("%d", &a[i][j]);\/*取地址*\/ }
c语言中怎么用EOF来结束数组输入
Linux ctrl + d 键入 EOF
c语言新手提问!!!关于如何输入EOF终止输入!!
windows:首先在最后一行结束后(此时未换行)输入ENTER键,新起一行,再输入ctrl+z,再输入时ENTER键即可。Linux:直接按CTRL+D快捷键 示例:include<iostream> using namespce std;void main(){ int a;while(cin >>a){ ;\/\/循环输入的代码块 } } ...
c语言中EOF的用法
include <stdio.h>int main(){char c;while((c = getchar()) != EOF){putchar(c);}return 0;}说明:在Windows上按CTRL+Z键,表示EOF。注意:EOF虽然是文件结束符,但并不是在任何情况下输入Ctrl+D(Windows下Ctrl+Z)都能够实现文件结束的功能,只有在下列的条件下,才作为文件结束符。(1)...
C语言编写,统计输入的行数,输出用EOF结束输入.
本题中的“用EOF结束输入”是指,在结束输入之后要再输入一个结束字符(按CTRL+Z键)之后再按回车。\/\/--- include <stdio.h> int main(void){ char a;int i=0;while ((a=getchar())!=EOF)if (a=='\\n') ++i;printf("%d",i);return 0;} \/\/---...
c语言中eof的定义以及用法
在C语言中,EOF是一个常量,表示文件结束符。EOF是End of File的缩写,用于表示文件的结束。在C语言中,EOF被定义为一个整数常量,其值为-1。在C语言中,EOF常常用于判断文件是否已经读取到末尾。在读取文件时,可以使用EOF作为循环的终止条件,当读取到文件末尾时,返回EOF。例如,可以使用以下代码来...
c语言eof用法范例循环while
c语言eof用法范例循环while的方式为:在C语言中想要连续输入输出,在最后就需要使用EOF结束了,代码示例如下:#includeintmain(){inta,while(scanf("%d",&a)!=EOF){printf("%dn",a*2),}ret...c语言EOF用法-百度文库=EOF即while(scanf("%d",&n)!=EOF)中while(A)语句中的事件A是正确即...
c语言程序怎么实现"输入结束标志为EOF"?用scanf。急!
while(scanf("%d",&a)!=EOF)或者while(~scanf("%d",&a))两个是一样的,都是以文件尾(EOF)为结束标志 追问 为什么while(scanf("%d",&a)!=EOF)要打两个Ctrl+Z才会结束,而while (cin>>a)打了一个Ctrl+Z就会结束?谢谢. 本回答由提问者推荐 举报| 答案纠错 | 评论 3 2 其他...