为什么总是无法结束循环?!

时间:2021-08-31 08:55:33

#include "stdio.h"
main()
{
int c;
c=getchar();
while(c!=EOF)
{
putchar(c);
c=getchar();
}
}

====================

这个while循环总是无法结束啊!?

找不到原因,哪位DX给点指点!?

17 个解决方案

#1


ctrl+z 然后回车 就结束了啊

#2


EOF就是用ctrl+z输入

#3


同意楼上的。。。。。。

#4


#include "stdio.h" 
main() 

int c; 
while((c=getchar())!=EOF) 

putchar(c); 




#include "stdio.h" 
main() 

int c; 
while((c=getchar())!='\n') 

putchar(c); 



#5


输入CTRL+Z然后回车,

EOF是用CTRL+Z输入计算机的

#6



EOF

End-of-File

It is a macro constant definition. It expands to a negative integral constant expression.

It is used as the value returned by several <cstdio> functions to indicate failure, either because the End-of-File has been reached in a reading operation or because an error happened.

http://topic.csdn.net/u/20071222/22/3553064c-9c2b-4f9e-9202-eab7d5b899ec.html

#7


回车下ctrl+z回车下。。
也可能是ctrl+D

#8


while(c!=EOF) 
这个结束条件 是文件结束符。

在键盘上用 ctrl+z

#9


windows下ctrl+z;
unix下ctrl+d

#10


EOF是文件的结束符吧,为什么用EOF来结束输入字符?

#11


我觉得EOF不是文件的结束符,文件里是没有文件结束符这个字符的。它只是函数在读到文件末尾的时候没有字符读入了返回的一个文件结束标志,定义为INT的-1。而对于从终端输入,计算机是没有办法知道文件(即健盘文件)什么时候到达文件结尾,只有一种机制来通知计算机我的输入完毕。所以在linux下按下ctrl+d,则函数getchar()知道来了文件结尾,则返回EOF(-1),循环结束。

#12


while(c!=EOF) //这个改一下吧, while(c!='a')

#13


ascii没有负值,所以while永远为真。EOF一般为-1  不靠组合键,按不出负数

#14


引用 10 楼 cq_gongyoulong 的回复:
EOF是文件的结束符吧,为什么用EOF来结束输入字符?

同意!

#15


引用 1 楼 pur_e 的回复:
ctrl+z 然后回车 就结束了啊
正解

#16


学习了............

#17


谢谢楼上的~~~~

不过我用CTRL+C也可以把程序终止~~~

#1


ctrl+z 然后回车 就结束了啊

#2


EOF就是用ctrl+z输入

#3


同意楼上的。。。。。。

#4


#include "stdio.h" 
main() 

int c; 
while((c=getchar())!=EOF) 

putchar(c); 




#include "stdio.h" 
main() 

int c; 
while((c=getchar())!='\n') 

putchar(c); 



#5


输入CTRL+Z然后回车,

EOF是用CTRL+Z输入计算机的

#6



EOF

End-of-File

It is a macro constant definition. It expands to a negative integral constant expression.

It is used as the value returned by several <cstdio> functions to indicate failure, either because the End-of-File has been reached in a reading operation or because an error happened.

http://topic.csdn.net/u/20071222/22/3553064c-9c2b-4f9e-9202-eab7d5b899ec.html

#7


回车下ctrl+z回车下。。
也可能是ctrl+D

#8


while(c!=EOF) 
这个结束条件 是文件结束符。

在键盘上用 ctrl+z

#9


windows下ctrl+z;
unix下ctrl+d

#10


EOF是文件的结束符吧,为什么用EOF来结束输入字符?

#11


我觉得EOF不是文件的结束符,文件里是没有文件结束符这个字符的。它只是函数在读到文件末尾的时候没有字符读入了返回的一个文件结束标志,定义为INT的-1。而对于从终端输入,计算机是没有办法知道文件(即健盘文件)什么时候到达文件结尾,只有一种机制来通知计算机我的输入完毕。所以在linux下按下ctrl+d,则函数getchar()知道来了文件结尾,则返回EOF(-1),循环结束。

#12


while(c!=EOF) //这个改一下吧, while(c!='a')

#13


ascii没有负值,所以while永远为真。EOF一般为-1  不靠组合键,按不出负数

#14


引用 10 楼 cq_gongyoulong 的回复:
EOF是文件的结束符吧,为什么用EOF来结束输入字符?

同意!

#15


引用 1 楼 pur_e 的回复:
ctrl+z 然后回车 就结束了啊
正解

#16


学习了............

#17


谢谢楼上的~~~~

不过我用CTRL+C也可以把程序终止~~~