vs2019 无法使用scanf 解决办法

#include <iostream> #include <stdio.h> using namespace std;

int main() { int i; scanf("%d", &i); printf("i=", i); cout << "Hello Worlfd! "<<i << endl; return 0; }

QT CREATOR中执行不了,好像是哪里要配置依赖库(有了解QT CREATOR的高手可以留言答复下),节省时间,换VS2019执行,结果执行报错

“‘scanf’: This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details。”

1 解决办法

  1. 选中项目,右键选中属性;
  2. 弹出以下窗口,选中预处理器;再点击图中下拉按钮,点击编辑;
  3. 在预处理器定义处添加_CRT_SECURE_NO_WARNINGS;
  4. 点击确定。

方法有效 成功后输出

但是又发现printf()这行的记录没有按期望打印

原来是c++的printf需要输出控制符才可以输出

代码修改如下

#include <iostream> #include <stdio.h> using namespace std;

int main() { int i; scanf("%d", &i); printf("i=%d", i); cout << "Hello Worlfd! "<<i << endl; return 0; }

执行效果

同时重点了解下scanf 和printf的非控制输入(出)符 和 控制输入(出)符 ,scanf()中的m为非控制输入(出)符 %d为控制输入(出)符 (它是控制后面的输出数据类型的)

#include <iostream> #include <stdio.h> using namespace std;

int main() { int i; scanf("m%d", &i); printf("i=%d", i); cout << "Hello Worlfd! "<<i << endl; return 0; }

输入m123 输出如下

使用控制输入符的例子

#include <iostream> #include <stdio.h> using namespace std;

int main() { char j1,j2,j3; for (int i = 0; i < 3; i++) { scanf("%c%c%c",&j1, &j2, &j3 ); printf("j1=%c j2=%c j3=%c", j1,j2,j3); } cout << "Hello Worlfd! "<< j1 << endl; cout << "Hello Worlfd! " << j2 << endl; cout << "Hello Worlfd! " << j3 << endl; return 0; }

输出

参考

scanf用法视频

经验分享 程序员 微信小程序 职场和发展