C语言scanf乱码,c语言scanf出错
作者:admin 发布时间:2024-04-08 01:00 分类:资讯 浏览:12
为什么c语言中输入的字符成乱码!!
1、你的编译系统采用的是标准ASCII码集,而不是扩展ASCII码集,所以打印不出176和219对应的符号。建议作如下修改:在#include stdio.h前或后加一行#include stdlib.h。
2、汉字乱码是因为缓冲区有字符,需要用fflush(stdin);来清空键盘缓冲区,使用getch等都是治标不治本的办法,可以多学习一下fflush的使用,对于大批量的手动输入,很用。
3、studentType),1,fp)!=1)简单看了下,这行有问题,往文件里写的时候是把一个字符串写进去,stud[i]是一个struct,强行把它序列化的话,内存中的存储不是连续的,这样写就会写入一些没用的数据,导致出错。
4、printf(%s\n,str);}3)关于出现乱码的问题,估计你的文件中有中文汉字。读取到119位的时候正好是某个汉字的前一半。要解决这个if(fgets(str,121,fp)!=null)这里120 改成读偶数个121。另外文件最好用宽字符的。
5、这种情况多数是由于操作系统的语言选项不正确引起的。建议你查看一下控制面板中的区域和语言选项,特别是有关“非Unicode程序的语言”,一定要选择成“中文(简体,中国)”。然后重启电脑。
6、你这个乱码,你的文件里,学号长度为10个字节,所以你定义学号这个变量时,必须定义11个字节的长度,因为字符串的变量,必须要有一个\0作为结束,不然的话,显示的时候,没有结束符就会接着往下显示,就会有乱码出现。
C语言为什么会出现乱码?
1、从代码看,在Windows平台是有大概率会乱码,假如你的商品信息数组里存放了换行就一定会乱码。主要问题在文件的打开方式不对,fread, fwrite函数最好以二进制模式打开文件,即打开方式加上b,即(rb, wb)。
2、中文编码格式不对。设置一下编码。你用的是什么编辑器。
3、C语言源文件的编码与系统的不一样,用稍微高级一些的文本编辑器,更换文本的编码格式。用写字板试试。
- 上一篇:c语言入门那本书好,c语言入门推荐
- 下一篇:vivo面试c语言,vc++面试题
相关推荐
- 资讯排行
- 标签列表
- 友情链接