文件输入操作putc怎样结束

ningv 2011-05-17 09:46:09
刚刚学习C的文件管理。用putc接收字符后不知怎么结束,书上的案例是输入“^Z”后就结束了,但我却不行。以下代码是照搬书上的。


#include "stdafx.h"
#include "stdio.h"
#include "conio.h"

main()
{
FILE *f1;
char c;
printf("Data Input\n\n");
f1=fopen("INPUT","w");
while((c=getchar()) !=EOF)
putc(c,f1);
fclose(f1);
printf("\nData Output\n\n");
f1=fopen("INPUT","r");
while((c=getchar()) !=EOF)
printf("%c",c);
fclose(f1);
}
...全文
129 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
yoxibaga 2011-05-18
  • 打赏
  • 举报
回复
lz,也可以自己设置个文件结束符,当读到此字符时就结束。
yoxibaga 2011-05-18
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 qq120848369 的回复:]
读终端输入可以getchar,但是读文件木有getchar这个东西,是fgetc.

而且请用int c; while((c=getchar())!=EOF) ,不要用char c;
[/Quote]
++
由于EOF定义为整型,则getchar()类型则会自动提升为int,而c定义为char,getchar()得到的整型会裁剪,当运行在无符号机上,则是个死循环,当/377既255D,循环则会终止。
把c定义为int,就不会存在裁剪。
screwzm 2011-05-18
  • 打赏
  • 举报
回复
ctrl+z是在stdin里使用的,你用的是本地文件,读取到文件最后自动介绍的!!!!
赵4老师 2011-05-18
  • 打赏
  • 举报
回复
putc是输出不是输入
qq120848369 2011-05-17
  • 打赏
  • 举报
回复
读终端输入可以getchar,但是读文件木有getchar这个东西,是fgetc.

而且请用int c; while((c=getchar())!=EOF) ,不要用char c;
AnYidan 2011-05-17
  • 打赏
  • 举报
回复
while((c=getchar()) !=EOF)

EOF = -1; 文件结尾

[Quote=引用 6 楼 yangkeguo 的回复:]
windows下:enter+(ctrl+z)+enter
[/Quote]
yangkeguo 2011-05-17
  • 打赏
  • 举报
回复
windows下:enter+(ctrl+z)+enter
Ever_lover 2011-05-17
  • 打赏
  • 举报
回复
可以的
pcliuguangtao 2011-05-17
  • 打赏
  • 举报
回复
windows上面ctrl+z
linux上面ctrl+d
ningv 2011-05-17
  • 打赏
  • 举报
回复
依旧打印"^Z",没有结束[Quote=引用 1 楼 q191201771 的回复:]
ctrl+z吧
[/Quote]
startservice 2011-05-17
  • 打赏
  • 举报
回复
ctrl+z可以的。
就想叫yoko 2011-05-17
  • 打赏
  • 举报
回复
ctrl+z吧

69,368

社区成员

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

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