我最感兴趣的是,你一开始为什么不给出代码?!
在 你的代码出错了 和 这世界出错了 之间,你倾向于后者,所以不愿给出代码。或者是,你模糊地描述一下问题,别人就能像神仙一样知道你代码是怎么写的,又错在什么地方。
另一个使我迷惑的地方是,你这题目要求哪里来的,为什么汉字等非asc字符也要考虑?我个人
建议你先问一问你的老师,是否要考虑非asc字符的情况。
你的代码就比较搞了,文本方式打开、还追加方式、fgets,最扯蛋的就是瞎用feof了。
以上都不谈,假如你想将一个文本中的字符用空格隔开,步骤如下
1. 以
二进制方式打开文件
2. 判断有无
BOM头,有的话,直接获得文本的编码;没有的话,就得通过内容去猜测,当然了,不能保证100%猜得正确
3. 读取文件内容,根据第二步获得的编码,
正确分割字符
4. ……(没什么好说的)
最难的就是第二步,你看windows自带的记事本程序,输入"a b c ",保存为ANSI格式,关闭再次打开时乱码了,因为windows将它猜测为 utf32-little endian 格式了。这还是最简单的,你让台湾人发个BIG5编码过来,放到默认GB2312的电脑上,猜死都不可能正确。