C语言读写TXT文件问题

2024年11月15日 07:19
有3个网友回答
网友(1):

你好,一楼解释的字符串结束符'\0'只是针对内存中C风格字符串。而对磁盘文件或者文件流来说是不适用的。

出现“y上面两个点”的乱码的原因在于fopen()函数以及fgetc()函数上,在读取文件流上,末尾会读出一个值为-1的字符变量,正是由于这个怪异的值,才出现了那个乱码。

我测试过了,读入-1跟文本文件的编码无关,我测试过ANSI和UNICODE编码的文本文件,均为读入这个值为-1的结束符。

所以,为了避免这个情况,再输出字符时,去掉该结束字符吧。

网友(2):

这代码的原理就是从source文件、拷贝内容到destinat文件(append) 。。。。。所以 内容要看源文件是怎样的
~~~~~~~~~
~~~~~~~~~~~~~~~~~

网友(3):

这个问题很容易解决。因为字符数组的最后一位自动有一个结束符'\0',因此在输入到file2中出现问题,如果你在for(i=0;i {

fputc(ch[i],file2);

}
中讲条件改为n-1,就不会将这个结束符输入。在vc6上测试是可行的。