visualstudio2017 community版本,有点失去信心了,同样两行代码,外观看不出任何区别,但是一个报错
不多废话,先上代码
注意查看函数fputs_FILE,该函数的两行代码fopen_s是同样的,但事实上:
第一条fopen_s执行起来会报错,但是第二条就不会!!!
/*
练习:获取用户键盘输入,写入文件中
*/
#include"head.h"
int fgets_stdin(char *buf,int a) {
fgets(buf, a, stdin);
return EXIT_SUCCESS;
}
int fputs_FILE(char *buf) {
FILE *fp;
fopen_s(&fp, "C:/Users/a/source/repos/ConsoleApplication7/fgets_stdin_fputs_FILE.txt","w+" );
//fopen_s(&fp, "C:/Users/a/source/repos/ConsoleApplication7/fgets_stdin_fputs_FILE.txt","w+" );
if (fp==NULL) {
perror("fopen_s");
return -1;
}
fputs(buf, fp);
fclose(fp);
return EXIT_SUCCESS;
}
int main() {
char buf[10] = { 0 };
fgets_stdin(buf,sizeof(buf) );
//printf("%s \n", buf);
fputs_FILE(buf);
system("Pause");
return EXIT_SUCCESS;
}
第一行的fopen_s :fopen_s(&fp, "C:/Users/a/source/repos/ConsoleApplication7/fgets_stdin_fputs_FILE.txt","w+" );

最终每行开始排查,发现在第一行的参数二的位置”“内部有一个东西,类似于字符,可以让光标多移动一次,但是却并没有显示,即使复制粘贴到notepad++上也看不到该字符(该字符不同于回车或者换行)。
把该字符删除即可成功运行。
总结:
这就很懵,同样的代码竟然有了不同的结果,就好比在学习一个灯泡在多大的电压可以点亮时,突然发现,在220V下面点亮了,但是偶尔几次不亮,这就很违背物理常识了。
想起了一个问题:无神论造神(无神论创造物理定律等)。
posted on 2022-06-04 13:03 AnonymousJDK 阅读(73) 评论(0) 收藏 举报
浙公网安备 33010602011771号