各位老铁们好,相信很多人对scanf都不是特别的了解,因此呢,今天就来为大家分享下关于scanf以及输入函数scanf的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!
一、scanf()的使用
控制台输入和scanf()内的字串部分输入形式保持一致,原样输入
inta,b;\nscanf("%d%d",a,b);\nscanf("%d-%d",a,b);
如第2行:
两个%d之间用的空格,则输入的时候也要加空格
两个%d之间用的短线,则输入的时候也要加“-”
二、scanf()的返回值
scanf函数是C语言中用于标准输入读取不同类型数据的函数,
sacnf的返回值是成功赋值的项目数,
例1:(在执行的时候可能会报错--4996,如果报错下面有解决方法哦)
#include<stdio.h>\n\nintmain(){\ninta;\nprintf("请输入一个整数:");\nif(scanf("%d",&a)==1){\nprintf("输入的整数是:%d\\n",a);\n}\nelse{\nprintf("输入失败!\\n");\n}\n}
例2:
#include<stdio.h>\n\nintmain(){\ninta,b;\nprintf("请输入整数:");\nif(scanf_s("%d%d",&a,&b)==2){\nprintf("输入的整数是:%d%d\\n",a,b);\n}\nelse{\nprintf("输入失败!\\n");\n}\n}
例2输出结果
错误C4996是一个编译器警告,表示使用了一个被认为是不安全或者已经不推荐使用的函数。在这个例子中,scanf函数被使用,这个函数是一个不安全的输入/输出函数,它可能会导致缓冲区溢出。
//将\nscanf("%d",&a)==1\n//改写为\nscanf_s("%d",&a,sizeof(a))==1如果你确信使用当前函数不会引起安全问题,可以通过编译器指令#pragmawarning(disable:4996)来禁用这个特定警告。
#ifdef_MSC_VER\n#pragmawarning(disable:4996)\n#endif\n\n//其他代码
_MSC_VER
_MSC_VER的意思就是:Microsoft的C编译器的版本。
微软不同时期,编译器有不同的版本:
其中MSVC++10.0就是VisualC++2010,MSVC++9.0就是VisualC++2008,MSVC++8.0就是VisualC++2005
在程序中加入_MSC_VER宏可以根据编译器版本让不同版本的编译器选择性地编译一段程序。
如果你还想了解更多这方面的信息,记得收藏关注本站。