LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 991|回复: 2

使用fgets()输入空行为什么不能退出?

[复制链接]
发表于 2003-8-23 15:52:31 | 显示全部楼层 |阅读模式

  1. #include <stdio.h>
  2. #define SCHOOL 20
  3. #define CLASS 16
  4. #define NAME 10
  5. #define MAX 20
  6. struct address {
  7.                 char school[SCHOOL];
  8.                 char class[CLASS];
  9.                 char name[NAME];
  10.                 };

  11. int main (void)
  12. {
  13.         struct address gx[MAX];
  14.         FILE *pf;
  15.         int i;
  16.         char ch[MAX];

  17.         if ((pf=fopen("y.txt","a+")) == NULL){
  18.                 puts("no open the file");
  19.                 exit(1);
  20.         }
  21.        
  22.         for (i=0;printf("Please enter school name:"),i<MAX && fgets(gx[i].school,SCHOOL,stdin) != NULL && gx[i].school[0] != '\0';i++){
  23.                 printf("Please enter class name:");
  24.                 fgets(gx[i].class,CLASS,stdin);                        
  25.                 printf("Please enter hex name:");
  26.                 fgets(gx[i].name,NAME,stdin);
  27.                 printf("school name:%sclass name:%sname:%s\n",gx[i].school,gx[i].class,gx[i].name);
  28.         }
  29.         close(pf);
  30. printf("\n");
  31. return 0;
  32. }

  33. /*改为 for (i=0;printf("Please enter school name:"),i<MAX && gets(gx[i].school) != NULL && gx[i].school[0] != '\0';i++) 可以退出,但我想用fgets(),应该怎么改,谢谢*/
复制代码
 楼主| 发表于 2003-8-23 15:56:24 | 显示全部楼层
百分号怎么成笑脸符了,应该怎么办才能正确贴代码。
发表于 2003-8-23 16:49:06 | 显示全部楼层
fgets不会去掉最后的'\n',你比较一下 != '\n'

编辑帖子的时候,选中下面的“在帖子中禁用表情符号”
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表