谁能告诉我这事怎么回事 关于C语言的问题

huiyiweilai5189 2010-12-12 01:18:02
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>

FILE *fp;
void enter(){
char ch;
fp=fopen("inventory.txt","a+");
if(fp==NULL)
{
printf("文件未建立!");
getch();
}
else{
fprintf(fp,"\n");//换行
printf("请初始化现有的库存信息:包括商品类型,商品名称,商品数量,商品单价,商品位置(A-B-C-D):\n");
ch=getchar();
while(ch!='\n'){
fputc(ch,fp);
ch=getchar();
}
fclose(fp);
}

}
int main(){
char operate;
printf("请输入e:");
scanf("%c",&operate);
//operate='e';
switch(operate){
case 'e':enter();}
getch();}




这个通过输入获得operate的值 调用enter函数时不能正常运行 一输入就结束运行了
谁能告诉我是怎么回事 谢谢谢谢啦~
...全文
87 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
arong1234 2010-12-12
  • 打赏
  • 举报
回复
你输入完e之后肯定回车了,这个回车被enter内部的getchar获得,并退出循环
不要用这种非常关键的字符做循环条件,除非你对这种输入控制非常熟悉。你随便用一个其他字符如'$'做结束符,估计就没问题了
羽飞 2010-12-12
  • 打赏
  • 举报
回复
调试一下吧,还想说一下,文件中的换行是\r\n,不是一个\n,我试过几次(VC6.0)

15,447

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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