多次修改成功运行代码
scanf_s输入字符串%s的时候需要加一个参数表明缓冲区大小。
scanf_s("%s",filename, sizeof(filename));
fopen需要改成fopen_s,或者在第一行添加#define _CRT_SECURE_NO_WARNINGS禁用所有scanf_s(),fopen_s()之类的错误信息。
第10行如果用fopen的话需要写成
if ((fp=fopen(filename, "w"))==NULL)
==的优先级高于=,必须要加括号,filename是变量名,不需要加双引号。
改后
getchar返回值被忽略,怎么解决.
再改
存在的问题
这个是因为版本过高,vs2019觉得原来的scanf不安全更换成s_scanf了,要改回去就去常规的检验里面把SLD检查关掉就好了。之前我也遇到过,就是这样解决的。
头文件加上#include <string.h>可以运行getchar()函数,当fopen换成fopen_s则无法完成编译。不换,则可以实施fopen之前的步骤,之后的仍无法运行。
没改的
fopen改fopen_s