记录使用中出现的错误及解决方法
IDE特性
1.如scanf等函数提示不安全:
scanf改为scanf_s
项目属性-c/c++-常规-SDL检查 “是”改为“否”
#define _CRT_SECURE_NO_WARNINGS 1
2.中文乱码
可参考谭九鼎的回答
编码格式要用 简体中文(GBK2312)-代码页936
注意GBK转为utf-8后保存,会造成不可逆的信息损失
3.Sleep()函数
#include <windows.h>
Sleep(1000); ///睡一秒钟,单位毫秒,首字母大写
代码
警告
1.C6054:字符串 不能以零结尾
经常是字符串未初始化导致的,原理不明
可改为 char string[20]={0};
2.C6031:已忽略返回值: 调用的函数 可能会返回意外值
总出现在对文件的操作中,如fopen
返回值为NULL的情况也要考虑
3.
错误
结果中出现大量“屯”
1. 原因:出现 屯 是因为使用了未初始化的堆区数据也就是malloc申请的空间
-
可能出现的问题:
2.1数组越界访问。
2.2字符串未初始化。
2.3忘记在字符串末尾加‘\0’或操作失误,将‘\0’覆盖了。
2.4读取文件时,分配的字符串长度正好与文件长度相等,造成字符串末尾没有‘\0’,正确的做法是多分配一个长度,然后末尾加‘\0’