目录
前言
1. C编程中避免控制台程序一闪而过
2. 引用文件路径
3. Error C4996: ‘strcpy’: This function or variable may be unsafe.的处理方法
4. VS2017 找不到Windows SDK版本10.0.18362.0的解决办法
前言
在学习工作中,信手记录一些C代码编写的小技巧,以备查阅,也用以共勉。
1. C编程中避免控制台程序一闪而过
在非大数据量处理时,控制台方式运行C代码时,常常由于执行速度过快,运行窗口会一闪而过,导致无法看到控制台的输出信息,此时,一般通过在main函数中,return之前,加入”system(“pause”);”即可在程序运行结束后暂停,这样就可以清楚地看到屏幕输出结果啦。
2. 引用文件路径
VS环境中,用于路径时,如下:
strcpy(file_name, "G:NILMcodeBOCD_inputinput_datalaptop_data.csv");
会报出:
warning C4129: “N” : 不可识别的字符转义序列
warning C4129: “c” : 不可识别的字符转义序列
warning C4129: “B” : 不可识别的字符转义序列
warning C4129: “i” : 不可识别的字符转义序列
warning C4129: “l” : 不可识别的字符转义序列
将路径中的“”改为”\”即可,如下。
strcpy(file_name, "G:\NILM\code\BOCD_input\input_data\laptop_data.csv");
3. Error C4996: ‘strcpy’: This function or variable may be unsafe.的处理方法
项目属性->预处理定义中,加入” _CRT_SECURE_NO_WARNINGS”即可,如下:
4. VS2017 找不到Windows SDK版本10.0.18362.0的解决办法
明明可以正常运行的版本,当放在另一台机器上编译时,同样是VS2017,却报出“找不到Windows SDK版本10.0.18362.0”的错误,同时还有一堆“E1696 无法打开源文件stdio.h/stdlib.h/…”、”E0020未定义标识符printf”等错误。
解决方法如下:选中当前项目->右键->属性:
确定后,再次编译,上述所有报错全部消失,解决问题。
推测,下拉菜单中的可选项“10.0.17763.0“应该是当前VS2017对应的Windows SDK版本,而”10.0.18362.0“是原来可成功运行机器上对应的版本号。虽然同为VS2017,估计两者版本还是有一定差别,比如说子版本号不同之类的。



