如果从文件中输入的值为空,那么scanf会发生什么?

卡尔

我正在使用命令行将文本文件输入到程序,该程序使用文件中的信息来显示其他值,以根据该文本文件中的内容进行显示。

test.exe <input.txt(命令行)

文件看起来像这样:

2
abc 123
qwe 456

数字2告诉我程序必须读取多少东西。(在代码中命名为COUNT)

double number[MAXVALUE];
char name[MAXVALUE][MAXLENGTH];    
for(i = 0; i < COUNT; i++)
    {
        scanf("%s %lf", name[i], &number[i]);
    }

这就是输入代码的样子。

现在,发生的是如果我将3作为COUNT,程序将尝试读取3行并将第3行显示为乱码。如果输入的值不存在,如何防止scanf运行?

我很累,if(scanf(....) != 1)但似乎没有用。

迈克猫

首先,避免调用未定义的行为 %lf是为了阅读double,而不是int

然后,的返回值scanf()对于检查读取是否成功很有用。

引用自N1570 7.21.6.4 scanf函数,第3段:

如果在第一次转换(如果有)完成之前发生输入失败,则scanf函数将返回宏EOF的值。否则,scanf函数将返回分配的输入项目数,如果早期匹配失败,该数目可能少于所提供的输入项数,甚至为零。

这是一个改进的代码示例:

double number[MAXVALUE];
char name[MAXNAME][MAXLENGTH];    
for(i = 0; i < COUNT; i++)
    {
        if (scanf("%s %lf", name[i], &number[i]) != 2)
            {
                fputs("read error\n", stderr);
                exit(1); /* stdlib.h should be included to use this */
            }
    }

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如果 Java 是一种“按值调用”语言,那么为什么会发生这种情况?

来自分类Dev

如果主存储和分支存储都在bitbucket中更改,那么合并时会发生什么

来自分类Dev

如果未在“ scanf”语句中添加“&”,将会发生什么?

来自分类Dev

如果将输入存储在变量中,为什么输入的值始终为空?

来自分类Dev

如果我将输入大小设置为 32,32 mnist 会发生什么

来自分类Dev

Session_Start / _End,如果不将它们包含在global中,那么幕后会发生什么?

来自分类Dev

如果输入和输出文件相同,究竟会发生什么?

来自分类Dev

如果我为 Flink 检查点配置本地文件系统会发生什么?

来自分类Dev

设置为“链表”头部的初始空值会发生什么情况?

来自分类Dev

如果某些程序正在从一个文件中读取数据时删除输入文件,将会发生什么情况?

来自分类Dev

如果一个系统的输入依赖于另一个系统的输出,那么在hadoop中会发生什么?

来自分类Dev

如果 React 不在组件中为您自动绑定实例方法会发生什么?

来自分类Dev

如果不再引用该对象,那么扩展Thread的“对象的线程”会发生什么?

来自分类Dev

如果服务器繁忙,那么AsyncTask类会发生什么?

来自分类Dev

如果未指定xs视口,那么在Bootstrap中会发生什么?

来自分类Dev

如果第一个条件为“ false”,那么在进一步的条件下会发生什么?

来自分类Dev

如果将kSecAttrIsPermanent设置为NO,会发生什么?

来自分类Dev

如果尝试并最终在方法中返回布尔值,会发生什么情况

来自分类Dev

在ActionScript 3中,如果不同事件同时更改变量的值会发生什么?

来自分类Dev

在ActionScript 3中,如果不同事件同时更改变量的值会发生什么?

来自分类Dev

如果KVO观察到的值在短时间内改变了两次,那么watchValueForKeyPath()会发生什么?

来自分类Dev

如果从类文件中删除超级构造函数调用,会发生什么?

来自分类Dev

如果我没有在头文件中声明所有函数,会发生什么?

来自分类Dev

如果从类文件中删除超级构造函数调用,会发生什么情况?

来自分类Dev

如果我删除sources.list.d中的.list文件,会发生什么?

来自分类Dev

如果我没有在头文件中声明所有函数,会发生什么?

来自分类Dev

在C ++中为对象分配引用的值时会发生什么?

来自分类Dev

如果Maven存储库发布者删除其存储库,那么在Android Studio中具有远程库依赖项的项目会发生什么情况

来自分类Dev

如果我为当前不使用的字符串位置分配一个值,会发生什么情况?

Related 相关文章

  1. 1

    如果 Java 是一种“按值调用”语言,那么为什么会发生这种情况?

  2. 2

    如果主存储和分支存储都在bitbucket中更改,那么合并时会发生什么

  3. 3

    如果未在“ scanf”语句中添加“&”,将会发生什么?

  4. 4

    如果将输入存储在变量中,为什么输入的值始终为空?

  5. 5

    如果我将输入大小设置为 32,32 mnist 会发生什么

  6. 6

    Session_Start / _End,如果不将它们包含在global中,那么幕后会发生什么?

  7. 7

    如果输入和输出文件相同,究竟会发生什么?

  8. 8

    如果我为 Flink 检查点配置本地文件系统会发生什么?

  9. 9

    设置为“链表”头部的初始空值会发生什么情况?

  10. 10

    如果某些程序正在从一个文件中读取数据时删除输入文件,将会发生什么情况?

  11. 11

    如果一个系统的输入依赖于另一个系统的输出,那么在hadoop中会发生什么?

  12. 12

    如果 React 不在组件中为您自动绑定实例方法会发生什么?

  13. 13

    如果不再引用该对象,那么扩展Thread的“对象的线程”会发生什么?

  14. 14

    如果服务器繁忙,那么AsyncTask类会发生什么?

  15. 15

    如果未指定xs视口,那么在Bootstrap中会发生什么?

  16. 16

    如果第一个条件为“ false”,那么在进一步的条件下会发生什么?

  17. 17

    如果将kSecAttrIsPermanent设置为NO,会发生什么?

  18. 18

    如果尝试并最终在方法中返回布尔值,会发生什么情况

  19. 19

    在ActionScript 3中,如果不同事件同时更改变量的值会发生什么?

  20. 20

    在ActionScript 3中,如果不同事件同时更改变量的值会发生什么?

  21. 21

    如果KVO观察到的值在短时间内改变了两次,那么watchValueForKeyPath()会发生什么?

  22. 22

    如果从类文件中删除超级构造函数调用,会发生什么?

  23. 23

    如果我没有在头文件中声明所有函数,会发生什么?

  24. 24

    如果从类文件中删除超级构造函数调用,会发生什么情况?

  25. 25

    如果我删除sources.list.d中的.list文件,会发生什么?

  26. 26

    如果我没有在头文件中声明所有函数,会发生什么?

  27. 27

    在C ++中为对象分配引用的值时会发生什么?

  28. 28

    如果Maven存储库发布者删除其存储库,那么在Android Studio中具有远程库依赖项的项目会发生什么情况

  29. 29

    如果我为当前不使用的字符串位置分配一个值,会发生什么情况?

热门标签

归档