【问题标题】:Strange chars while reading from file with fgetc使用 fgetc 从文件中读取时出现奇怪的字符
【发布时间】:2017-12-14 01:31:37
【问题描述】:

当我 printf 变量 answer 时,它包含几个奇怪的字符。可能是什么原因?

int flag=0;
char answer[512];
char a[2];
a[1]='\0';

int c;
int status=1;
do {
      c = fgetc(pp);
      if( feof(pp) ) {
         break ;
        }
        if(c=='F' || status==0){
                a[0]=(char)c;
                strcat(answer,a);
                status=0;
        }
   } while(TRUE);

【问题讨论】:

  • 文件可能包含奇怪的字符
  • 设置answer[0]=0

标签: c fgetc non-unicode


【解决方案1】:

strcat 期望目标字符串有效 - 这意味着它必须以空值结尾。您没有明确地为空终止 answer 字符串。在循环之前添加answer[0]=0

【讨论】:

  • @chux。我认为 OP 得到了a[1]=0 正确。但错过了answer[0]=0
  • 是的,评论已删除。
  • 感谢@MFisherKDX,您的建议是解决方法。所以即使是空字符串也必须以 0 结尾?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-07-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多