C文件操作又一问题

密斯刘 2009-07-05 11:01:57
请看代码注释 按回车不能结束程序


#include<stdio.h>
#include<string.h>
main()
{FILE *fp;
char buff[64];
if((fp = fopen("d:\\turbo.txt","w"))==NULL)
{printf("File cannot be opened!\n");
system("pause");
exit(1);
}
while(strlen(fgets(buff,64,stdin))>0)//这里的条件貌似没有用
{fputs(buff,fp); //接上行 在Turbo C 2.0下按回车键无法结束
fputc('\n',fp);
}
fclose(fp);
system("pause");
}
...全文
21 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
密斯刘 2009-07-05
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 luwenzuo 的回复:]
fgets 是从文件读取的
从屏幕上输入的,应该用gets;你检查一下
[/Quote]
后面有stdin就是从标准输入设备输入了 呵呵 谢谢你们的关注
密斯刘 2009-07-05
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 lingyin55 的回复:]
回车结束可以用
if((ch = getchar())=='\n')
{
///end
}
[/Quote]


#include<stdio.h>
#include<string.h>
main()
{FILE *fp;
char buff[64];
if((fp = fopen("d:\\turbo.txt","w"))==NULL)
{printf("File cannot be opened!\n");
system("pause");
exit(1);
}
while(strlen(fgets(buff,64,stdin))>0)
{if(strcmp(buff,"\n")==0) //还是这样比较一下的好 就可以结束了 上面while的条件都可以不要 直接在循环体中输入
{fcloseall(); //while的条件就定位1 只要buff是个换行符 就可以结束while循环
system("pause");
exit(0);
}
fputs(buff,fp);
}
fclose(fp);
system("pause");
}
大前置 2009-07-05
  • 打赏
  • 举报
回复
fgets 是从文件读取的
从屏幕上输入的,应该用gets;你检查一下
lingyin55 2009-07-05
  • 打赏
  • 举报
回复
回车结束可以用
if((ch = getchar())=='\n')
{
///end
}

69,371

社区成员

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

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