精华内容
下载资源
问答
  • scanf返回值

    2017-12-02 00:04:06
    scanf 函数返回值问题 scanf函数同printf函数一样是有返回值的,可以分成三种情况  (1) 正整数,表示正确输入参数的个数。例如执行 scanf("%d %d", &a, &b);   如果用户输入"1 2",可以正确输入,返回2(正确...
    scanf 函数返回值问题
    scanf函数同printf函数一样是有返回值的,可以分成三种情况
      (1) 正整数,表示正确输入参数的个数。例如执行 scanf("%d %d", &a, &b); 
          如果用户输入"1 2",可以正确输入,返回2(正确输入了两个变量);
          如果用户输入"1,2",可以正确输入a,无法输入b,返回1(正确输入了一个变量)。
      (2) 0,表示输入不匹配,无法正确输入任何值。如果输入",1,2",则返回0。
      (3) EOF,(通常值为-1),表示输入流已经结束。

    2. 注意:scanf 的格式串里面,%s和%c中间需要空格呢
      原因:如果没空格的话。。。oldchar输入的就是空格了= =.

    3. printf的返回值是输出的字符数,printf("1234")的返回值是4,而printf("1234\n")的返回值是5。
    展开全文
  • 在家养病,闲着没事看C primer plus,看到书中...那到底scanf返回值具体指的是什么呢?例子1:void main(){int a;int b;int c;printf("请输入三个整数:");int x=scanf("%d%d%d",&a,&b,&c);printf(...

    在家养病,闲着没事看C primer plus,看到书中对于scanf输入的判断,常用如下方法:

    dcabc37b6581d17599f4965f42a11de1.png

    此时它将返回1视为我输入成功,如果不为1则视为输入失败。那到底scanf的返回值具体指的是什么呢?

    例子1:

    void main()

    {

    int a;

    int b;

    int c;

    printf("请输入三个整数:");

    int x=scanf("%d%d%d",&a,&b,&c);

    printf("%d/n%d/n",a,x);

    }

    运行结果是:

    如果输入1 2 3, x = 3;

    如果输入1 2 g, x = 2;  (g表示我没按照scanf的格式符%d输入,也就是不符合格式符形式的输入)

    如果输入1 g g, x = 1;

    如果输入g g g, x = 0;

    如果输入g 1 1, x = 0;

    如果输入1 g 1, x = 1;

    据此,得出的结论是,scanf返回的是到第一个错误的输入形式为止(如果没有那就到结尾呗),所有符合格式符的正确输入的个数。

    如果这个结论各位明白,那情况下面一行语句,看i结果是多少?

    i=scanf("%d%d%d",&a,&b);

    运行结果是:同例子1

    此例子中格式占位符%d有三个,对应的输入表项有俩。但是运行时依旧被要求输入三个(windows, DevC++)。输入的第三个整数确实没有承接变量,是被放到了缓冲区里面。但当输入是1 2 3三个正确整数时,返回值仍是3。

    这就是需要强调的第二点:scanf 函数的返回值反映的是按照指定的格式符正确读入的数据的个数。而不管你输入表项是否齐全。

    Ps:有的编译环境以上操作可能存在问题,比如scanf("%d%d%d",&a,&b); 会出现段错误。这有赖于编译器实现。

    所以能理解到的是scanf有可能在不同环境下返回值的情况是不同的,可移植情况是有待考虑的。

    而且C语言编程,怎么能看出一个程序员是老程序员,就是他写的程序是否稳定。他们可能忘记了这些具体的细节(具体返回值表示什么),但是他们始终保持不触碰模棱两可的地方。比如这个scanf返回值最多就是判断是否>0,再多则不利用。

    VS2019中scanf返回值被忽略的问题及其解决方法

    目录 [问题](#昨天在使用Visual Studio 2019编写C语言程序时遇到了scanf返回值被忽略问题) 问题原因 方法① 方法② 方法③ 方法④ 昨天在使用Visual Studio 20 ...

    c语言scanf返回值

    1. scanf 函数是有返回值的,它的返回值可以分成三种情况 1) 正整数,表示正确输入参数的个数.例如执行 scanf("%d %d", &a, &b); 如果 ...

    C语言scanf函数返回值小记

    scanf scanf是C标准库stdio里面定义的用于获取用户输入的函数,具体的介绍可以在CppReference上看到.scanf的返回值是已经成功赋值的变量个数,也就是说在 scanf(&quo ...

    C语言scanf的返回值

    #include int main(void) { long num; long sum = 0L; int status; printf("Please e ...

    printf与scanf的返回值、注意点

    printf()的返回值为其输出字符串常量的字符数(注意字符数与字数的区别)注意计数针对所有的打印字符,包括空格和不可见的换行字符(不包括字符串的空字符). scanf()函数返回成功读入的项目的个数 ...

    关于scanf的返回值

    今天写一个小程序时误用while(scanf("%d",&b)!=a),以为scanf的返回值就是输入的值. 其实真相是: scanf返回接收到的变量值的个数. int a ...

    关于scanf函数的返回值问题

    如: scanf("%d%d",&a,&b); 1.如果a和b都被成功读入,则scanf的返回值为2 2.如果只有a被成功读入,那么返回值为1 3.如果a和b都未被 ...

    scanf和cin的返回值

    需要连续从标准输入读取数据时,可以采用下面两种不同的方式判断文件结束: [cpp] view plaincopy   int i; while(scanf("%d",&i) ...

    scanf printf函数返回值

    1. scanf 函数是有返回值的,它的返回值可以分成三种情况  1) 正整数,表示正确输入参数的个数.例如执行 scanf("%d %d", &a, &b);   ...

    随机推荐

    vs2010中如何设置Visual Assist方便地使用现成的代码编辑器风格

    风格setting可以在下面网站上获取: http://studiostyl.es/ 在VS2010+VA直接使用会有2个显著的问题: 1,有些符号颜色太深,与黑色背景几乎融为一体: 2,光标落入大小 ...

    java 编码

    编码和解码:无论是解码还是编码都是针对码表来讲的. 编码:将能看懂得字符变为我们看不懂的码值. 字符串--->字节数组 String类的getBytes() 方法进行编码,将字符串,转为对映的二 ...

    Core Data

    •   Core Data   是 iOS SDK   里的一个很强大的框架,允许程序员 以面向对象 的方式储存和管理数据 .使用 Core Data 框架,程序员可以很轻松有效 地通过面向对象的接口 ...

    纯CSS实现圆形进度条

    CSS的优点在于的可以随意组合HTML元素来实现许多中效果,这儿我将使用CSS来实现一个运行进度条,效果如下: 思路是用两个div来作为进度条外观,表示进度的div和外面div宽度和高度保持一致,并是 ...

    深入解析Oracle 10g中SGA_MAX_SIZE和SGA_TARGET参数的区别和作用

    原文链接:http://m.blog.csdn.net/blog/aaron8219/40037005 SGA_MAX_SIZE是从9i以来就有的作为设置SGA大小的一个参数,而SGA_TARGET则 ...

    Elasticsearch安装和使用

    Elasticsearch安装和使用 Elasticsearch 是开源搜索平台的新成员,实时数据分析的神器,发展迅猛,基于 Lucene.RESTful.分布式.面向云计算设计.实时搜索.全文搜索. ...

    uva 348

    dp还是比较容易  关键是输出路径 .... #include #include #include #de ...

    ECSTORE验证码优化

    用ecstore的朋友应该知道,ecstore的验证码超级鸡肋. 特别是字母和数字混合,根本就看不懂写的是什么? 数字还好,但是字母就别提了.而且还小. 索性就把验证码换掉.研究一下发现,ecstor ...

    使用JQUERY操作Radio

    发展中经常使用Radio为了实现用户的选择的影响.我在该项目中使用的一些JQUERY操作Radio该方法.这里分享,对于有需要的朋友参考的. 1.变化radio选择.引发一些结果 $("in ...

    JS深度判断两个对象字段相同

    代码: /** * 判断此对象是否是Object类型 * @param {Object} obj */ function isObject(obj){ return Object.prototype. ...

    展开全文
  • 1. scanf 函数是有返回值的,它的返回值可以分成三种情况1) 正整数,表示正确输入参数的个数。例如执行 scanf("%d %d", &a, &b);如果用户输入"3 4",可以正确输入,返回2(正确输入了两个变量);如果用户输入...

    1. scanf 函数是有返回值的,它的返回值可以分成三种情况

    1) 正整数,表示正确输入参数的个数。例如执行 scanf("%d %d", &a, &b);

    如果用户输入"3 4",可以正确输入,返回2(正确输入了两个变量);

    如果用户输入"3,4",可以正确输入a,无法输入b,返回1(正确输入了一个变量)。

    2) 0,表示用户的输入不匹配,无法正确输入任何值。如上例,用户如果输入",3 4",返回0。

    3) EOF,这是在 stdio.h 里面定义的常量(通常值为-1),表示输入流已经结束。在Windows下,用户按下CTRL+Z(会看到一个^Z字符)再按下回车(可能需要重复2次),就表示输入结束;Linux/Unix下使用CTRL+D表示输入结束。

    所以可以使用下面的代码来处理输入:

    while (scanf("%s %c %c", str, &oldchar, &newchar) == 3) /* 或!= EOF , 但前者更好 */

    {

    ; //处理

    }

    2. 为什么前面 scanf 的格式串里面,%s 和 %c 中间需要空格呢?

    那是因为如果没空格的话。。。oldchar输入的就是空格了= =.

    3. 顺便说一下,printf 的返回值是输出的字符数,例如,printf("1234")的返回值是4,而printf("1234\n")的返回值是5。

    展开全文
  • scanf返回值被忽略问题

    千次阅读 2020-11-05 16:43:24
    解决Visual Studio中scanf返回值被忽略问题 最近在使用Visual Studio编写c语言时遇到了scanf返回值被忽略问题 总结了如下几种解决方法: 方法一(不建议) scanf修改成 scanf_s 可以说scanf_s是vs编译器特有的,它...

    解决Visual Studio中scanf返回值被忽略问题

    最近在使用Visual Studio编写c语言时遇到了scanf返回值被忽略问题

    在这里插入图片描述

    总结了如下几种解决方法:

    方法一(不建议)
    scanf修改成 scanf_s
    可以说scanf_s是vs编译器特有的,它认为scanf不安全,所以不允许你用而让你用它自己定义的scanf_s。
    在这里插入图片描述

    方法二
    开头添加 #define _CRT_SECURE_NO_WARNINGS
    在这里插入图片描述

    方法三
    开头添加 #pragma warning(disable:4996)
    在这里插入图片描述

    方法四
    错误提示的原因在与vs中的SDL检查;关闭步骤右键单击工程文件–>属性--------> c/c++ ------>所有选项------------> SDL检查选项改为 否
    在这里插入图片描述
    在这里插入图片描述


    转载:https://blog.csdn.net/qq_42487738/article/details/104144201
    2020年11月5日
    在这里插入图片描述

    展开全文
  • 解决Visual Studio中scanf返回值被忽略问题

    万次阅读 多人点赞 2020-02-02 14:22:15
    最近在使用Visual Studio编写c语言时遇到了scanf返回值被忽略问题,下面总结了几种解决方法: 总结了如下几种解决方法: 方法一 scanf修改成 scanf_s 可以说scanf_s是vs编译器特有的,它认为scanf不安全,所以不...
  • c语言scanf返回值

    2021-06-03 13:33:44
    c语言scanf返回值 1. scanf 函数是有返回值的,它的返回值可以分成三种情况 1) 正整数,表示正确输入参数的个数。例如执行 scanf("%d %d", &a, &b); 如果用户输入"3 4",可以正确输入,返回2(正确输入了...
  • scanf返回值被忽略的原因及其解决方法

    千次阅读 多人点赞 2021-01-26 18:00:42
    Visual Studio 2019编写C语言程序时scanf返回值被忽略问题 scanf返回值被忽略的解决方法 在ANSI C中只有scanf(),没有scanf_s(),但是scanf()在读取时不检查边界,所以可能会造成内存泄漏。于是Microsoft公司在VS...
  • scanf 返回值

    千次阅读 2009-08-03 16:03:00
    C语言中,scanf返回值:#include void main(void){ int input_re = 0; int a=0; int b=0; int c=0; printf("Plese input your data!/n"); input_re = scanf("%d%d%d",&a,&b,&c); printf("input_re is %
  • scanf返回值的问题

    2014-04-25 16:38:00
    scanf返回值的问题 关于scanf的返回值,MSDN里是这样写的:Both scanf and wscanf return the number of fields successfully convertedand assigned; the return value does not include fields that were read ...
  • Microsoft Visual Studio C++ 中 Scanf返回值被忽略问题

    万次阅读 多人点赞 2019-04-24 10:29:20
    scanf返回值被忽略问题 运行代码时出错 VS弹出警告 出现这问题 只需要把 scanf修改成scanf_s 原因不知道 有了解的可补充
  • printf和scanf返回值的探索 输出纯数字的时候 例1 int num = printf("%d", 5); printf("%d", num); 运行结果: 51 5是执行第一个printf后输出的数 1是执行第二个printf输出第一个printf的返回值 例2 ...
  • scanf返回值问题

    2021-03-17 09:41:40
    status = scanf("%d", &num); while (status == 1) ... scanf返回的是到第一个错误的输入形式为止的所有符合格式符的正确输入的个数。 举例: int main() { int a =0, b = 0, c =0; printf("请输入三个整数...
  • c语言scanf返回值问题

    2018-06-11 15:24:08
    scanf函数返回值: 1.scanf()函数有返回值且为int型。 2.scanf()函数返回的值为:正确按指定格式输入变量的个数;也即能正确接收到值的变量个数。 例如:scanf("%d%d", &a, &b); 如果...
  • C语言scanf返回值

    千次阅读 2018-01-14 14:32:40
    scanf 函数是有返回值的,它的返回值可以分成三种情况 1) 正整数,表示正确输入参数的个数。例如执行 scanf(“%d %d”, &a, &b); 如果用户输入”3 4”,可以正确输入,返回2(正确输入了两个变量); 如果用户...
  • scanf 返回值的总结

    千次阅读 2018-05-26 14:18:39
    返回值代表的是正确匹配的参数个数 如果只读到一个EOF,则返回值为EOF int a; while(scanf("%d", &a)==EOF)break; int a; while(~scanf("%d", &a)) 都可以代表如果数据读取...
  • C语言scanf返回值问题

    2017-03-09 13:55:31
    程序如下: #include void changetime(int);...一个将输入的分钟转化为小时的程序,while判定中当scanf失败时返回EOF循环结束,无论输入什么scanf都不会返回-1,无论是字母还是浮点数,只会一味的死循环,求解
  • HDU1000 A+B problem(scanf返回值) #include<stdio.h> int main() { int A, B; int sum; while(scanf("%d %d", &A, &B)!=EOF) { sum = A + B; printf("%d\n", sum); } return 0; } 本...
  • Q: scanf返回值和printf返回值一样吗? A: scanf返回值和printf返回值不一样, scanf对于输入多少字符并不敏感, 大多数情况下毫无意义. 但它对输入的变量个数很感兴趣. 参考:printf 返回值 (你想知道的C语言 ...
  • //如果用户成功输入a和b的话scanf返回值就为2. //如果只有一个成功输入返回值为1. //如果a和b都没有输入则返回值就为0. //如果遇到错误则返回值为-1. 可以利用返回值来做一些输入的判断!!!! ...
  • 如果a和b都被成功读入,那么scanf返回值就是2; 如果只有a被成功读入,返回值为1; 如果a和b都未被成功读入,返回值为0; 如果遇到错误或遇到end of file,返回值为EOF。end of file为Ctrl+z 或者...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,543
精华内容 617
关键字:

scanf返回值