读出来: 2 是咋回事呢?原因是咱们保存文件时,现在咱们用的电脑用的编码是utf-8,可是c语言还用的是ascall码,所以,我们要将文件的编码格式转为ascall码。 3 4 返回去,再试试: 喏,问题解决了 emmm,这是up^(*~(oo)~)^在上一次更新技巧方面很久后,才又更新的。不要说up^(*~(oo)~)^懒,up^(*~(oo)...
程序执行两边,肯定是代码问题。数据对计算机而言就是2进制,你看乱码说明显示的时候没有对应字符集,你把原文件打开看有乱码没。或者你文件有中文,你试试用全部英文和数字的文件读取。另外,文件有格式的话,你换fscanf和fprintf看看。
估计是你文本的存储格式问题。重新另存为一份UTF-8格式的文件。UTF-8编码格式中的数字占用一个字节。而ANSI或其他字符是占用两个字节的。
这是因为你的txt文件的编码和编译器选择的编码不一致而导致的。按你使用的操作系统不同,如果是windows,可以直接用记事本打开文件,选择另存为——编码——ANSI,保存后重新打开。如果是linux,用编辑器打开文件后另存为无BOM的UTF-8格式。一般来说可以解决问题。解释一下,在中文的windows系统中,选择...
第一个空格的时候执行printf("%s ",a)这条语句,但是,a[20]没有初始化,所以就会出现这问题 在while循环前面,memset()初始化一下a数组应该就可以了
if((fp=fopen("source.txt","wb"))==NULL)表示你采用的是二进制的形式来写入文件 同理 fp=fopen("source.txt","rb");/*打开文件source.txt*/ 表示你用二进制的形式来读取文件 使用二进制形式读取或写入文件,文件采用的是二进制形式保存,采用记事本打开后会出现乱码。