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 解决办法
- 选中项目,右键选中属性;
- 弹出以下窗口,选中预处理器;再点击图中下拉按钮,点击编辑;
- 在预处理器定义处添加_CRT_SECURE_NO_WARNINGS;
- 点击确定。
方法有效 成功后输出
但是又发现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用法视频
