记录使用中出现的错误及解决方法

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申请的空间

  1. 可能出现的问题:

    2.1数组越界访问。

    2.2字符串未初始化。

    2.3忘记在字符串末尾加‘\0’或操作失误,将‘\0’覆盖了。

    2.4读取文件时,分配的字符串长度正好与文件长度相等,造成字符串末尾没有‘\0’,正确的做法是多分配一个长度,然后末尾加‘\0’