怎么终止这个程序?

Nlf 2007-02-27 03:16:21
#include<stdio.h>


main()
{

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

这个程序用来把输入定向到输出,但是我不知道怎么终止这个程序啊?
后来想了一下可能是while循环导致getchar()函数一直被动调用,那么我就改成下面这样,结果还是不行

#include<stdio.h>


main()
{
int c;
c=getchar();
while(c!=EOF)
{
putchar(c);
c=getchar();
}
}
...全文
280 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
FingerStyle 2007-02-27
  • 打赏
  • 举报
回复
汗ing...
Nlf 2007-02-27
  • 打赏
  • 举报
回复
楼上这个才是正解,我刚才一直在找EOF是什么热键 咔咔 呵呵 谢谢!!!!
EOF是已经在stdio.h文件中define好了的,不能reDefine
feelmeu2 2007-02-27
  • 打赏
  • 举报
回复
在输入的最后按ctrl+z 然后回车 就是 EOF
FingerStyle 2007-02-27
  • 打赏
  • 举报
回复
哭了..
如果你非要这么写的话, 把-1改成97, -1你输入任何一个字符的ASCIA都不是-1.
下面程序输入 a 退出...
#include<stdio.h>
#define EOF 97 //97为a的ASCIA码, 输入a推出循环
main()
{
int c;
c=getchar();
while(c!=EOF)
{
putchar(c);
c=getchar();
}
}
Nlf 2007-02-27
  • 打赏
  • 举报
回复
解决了
不实用EOF,而是用EOL或者'\n'

#include<stdio.h>

main()
{
int c;
c=getchar();
while(c!='\n')
{
putchar(c);
c=getchar();
}
}
Nlf 2007-02-27
  • 打赏
  • 举报
回复
问得好,就是因为EOF得存在,EOF不同于任何一个字符,为了保证c能识别,所以要int

另外,任何一个char类型都可以转换成int类型
所以
c=getchar()得到的char类型跟c是int并不矛盾
FingerStyle 2007-02-27
  • 打赏
  • 举报
回复
既然是获取 字符为什么要定义为int 类型的.... ??????
FingerStyle 2007-02-27
  • 打赏
  • 举报
回复
我声明成int但是并没有赋值啊,c的数值都是getchar()来赋值的啊!一点问题都没有,不需要用scanf()
========================================================================
狂汗ing....
Nlf 2007-02-27
  • 打赏
  • 举报
回复
getchar()用来获取输入文本流的下一个字符
我首先要c=getchar();
然后才putchat(c);
有什么问题么?
FingerStyle 2007-02-27
  • 打赏
  • 举报
回复
getchar()是返回字符类型的...

main()
{
int c;
putchar(c);
}
看看结果..就明白了....
Nlf 2007-02-27
  • 打赏
  • 举报
回复
是啊.但是并不矛盾啊
我声明成int但是并没有赋值啊,c的数值都是getchar()来赋值的啊!一点问题都没有,不需要用scanf()
FingerStyle 2007-02-27
  • 打赏
  • 举报
回复
getchar() 看看意思就行 , 是接受字符的

你如果定义成int 的 别用 getchar

cin>>c;

scanf("%d", &c);
Nlf 2007-02-27
  • 打赏
  • 举报
回复
换成'anything'都不行...已经try N次了
Nlf 2007-02-27
  • 打赏
  • 举报
回复
/* Returned by various functions on end of file condition or error. */
#define EOF (-1)

我c是申明的int类型大哥...
iu_81 2007-02-27
  • 打赏
  • 举报
回复
c!='0'
Nlf 2007-02-27
  • 打赏
  • 举报
回复
那你说的这个'e'是什么来头?
FingerStyle 2007-02-27
  • 打赏
  • 举报
回复
又没操作文件 EOF没用 ?

以前见过有人问这问题, 难道是教程里写的, 如果是赶快换....
FingerStyle 2007-02-27
  • 打赏
  • 举报
回复
char c;
c=getchar();
while(c!='e')
{
putchar(c);
c=getchar();
}
-------------------------

EOF这里用,根本不对, 哪来的file的EOF ?
Nlf 2007-02-27
  • 打赏
  • 举报
回复
end of file
FingerStyle 2007-02-27
  • 打赏
  • 举报
回复
EOF 是个么东东 ?

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧