[问题]fprintf除了输出相应的内容后还输出了什么?

C、C++和Java语言
回复
头像
yegle
帖子: 133
注册时间: 2007-04-28 18:15
送出感谢: 0
接收感谢: 0

[问题]fprintf除了输出相应的内容后还输出了什么?

#1

帖子 yegle » 2007-09-11 1:24

代码: 全选

   for (temp=0;temp<=i;temp++){
      fprintf(fp,"%s %s %c\n",list[temp].name,list[temp].url,list[temp].sort);
      }
   fclose(fp);

结果输出的除了相应的结构体的内容后,还输出了几个特殊字符。用vi可以看到是两个^@在文件的末尾。而用gedit则根本打不开这个文本,说是编码错误!?
是不是这样操作没把EOF写进文件啊?对文件操作实在是有些糊涂……
附件
address (复件).zip
奇怪的文本文件……扩展名改成txt……
(111 Bytes) 下载 20 次
头像
yegle
帖子: 133
注册时间: 2007-04-28 18:15
送出感谢: 0
接收感谢: 0

#2

帖子 yegle » 2007-09-11 2:01

已解决,原来是多做了两次循环……
转某牛人解答:

检查i、检查循环次数。。。输出结果最后多了两个 20 20 00 0A
20是空格 0A是换行。。。
正好是多打了2行。。。然后里打印的时候用空格隔开
list[temp].name,list[temp]是空而且是%s不打印
list[temp].sort是%c输出00
最后来个换行0A
回复

回到 “C/C++/Java”