(C) 属于文本,不能列入一般的数字公式计算,输入这个东西后,如果有公式是使用这里的数据进行数学计算的,就会出现所谓的乱码(实际是错误代码吧?)
程序执行两边,肯定是代码问题。数据对计算机而言就是2进制,你看乱码说明显示的时候没有对应字符集,你把原文件打开看有乱码没。或者你文件有中文,你试试用全部英文和数字的文件读取。另外,文件有格式的话,你换fscanf和fprintf看看。
数字当然是乱的了 因为写入的是二进制数据 比如字符a的ascii编码为97那么你存储在文件里的是97 打开时二进制数据97就是a的ascii编码所以显示为a 如果你写入的是数字1,1在ascii上没有对应的可显示字符 自然就无法进行显示了 而你想要显示的数字类似1其ascii值为49,所以你看到的文件是显示的1其二进...
那可能是你的数组没有初始化吧,前面你赋值了,但是后面是随机值,打印出来就是乱码
估计是你文本的存储格式问题。重新另存为一份UTF-8格式的文件。UTF-8编码格式中的数字占用一个字节。而ANSI或其他字符是占用两个字节的。
这个函数以二进制形式对文件进行操作。按数据定义结构的写入保持数据结构的长度,对于数值类型,再用文本方式打开时表现为乱码。例如float a=12345.67,写入文件后为4个字节,打开后不是文本表示的8个字节。写入数据用fprintf(fp,"%s %s %d 这种方式。不是 fscanf(), 另,注意写出时的格式里要有分隔...
int main(){ FILE *fp;char ch;if ((fp=fopen("o.txt","wr+"))==0) //据所知=没有"wr+"的表达,如果是读取数据的话改成if((fp = ("o.txt","r"))==NULL)就可以了 exit(0);while(!feof(fp)){ ch=fgetc(fp);printf("%c",&ch); //改成printf("%c",ch),加...
其他地方没有问题。出现乱码是因为编译器中缺少那些字符,所以是显示为乱码,不用担心,不会影响最后的评分。//请用如下代码测试 void encryChar(){ int i, j, len;char *pf;char ch;for(i=0;i<maxline;i++){ pf=(char*)xx[i];len = strlen(pf);for ( j=0; j <len; j++ ){ i...
在MSDN中fwrite的解释是Writes data to a stream.你写入的是int型的数组,以二进制存放在文件中,当你用文本文档打开的时候是当作字符串识别的,看到的就成了乱码。若你想看到写入的数字,可用fprintf,这样是以字符串写入