为什么scanf无法读取我的输入?

xyz

我想scanf()用来阅读下表:

Q 1 3
U 2 6
Q 2 5
U 4 8

这是我的代码:

#include <stdio.h>
#include <stdlib.h>

void main() {
    int *a;
    int i, j;

    a = (int *) malloc(4 * 3 *sizeof(int));

    printf("input:\n");
    for (i = 0; i < 4; i++) {
        for (j = 0; j < 3; j++) {
           scanf("%d", a + 3 * i + j);
        }
    }

    printf("output:\n");

    for (i = 0; i < 4; i++) {
        for (j = 0; j < 3; j++) {
           printf("%d  ", a[3*i+j]);
        }
        printf("\n");
    }   
}

在此处输入图片说明

但是,当我输入第一行时Q 1 3,此程序结束。不知道为什么

谢尔盖·卡里尼琴科(Sergey Kalinichenko)

发生这种情况是因为您向程序提供了一个非数字输入,该输入想使用读取数字%d既然Q不是一个数字,scanf失败。

但是,您的程序没有注意的返回值scanf,并且一直在失败状态下调用它。该程序认为它正在获取一些数据,而实际上却没有。

要解决此问题,请更改代码以使其通过,%c或者%s代码读取非数字字符时,检查的返回值scanf,并在scanf失败时清除无效的输入

调用时scanf,它将返回与%它提供的说明符相对应的值这是如何检查的返回值scanf

if (scanf("%d", a + 3 * i + j) == 1) {
    ...                   // The input is valid
} else {
    fscanf(f, "%*[^\n]"); // Ignore to end of line
}

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么我的程序无法读取用户输入?

来自分类Dev

为什么scanf无法正确读取该值?

来自分类Dev

为什么我无法使用jquery读取angular js输入值?

来自分类Dev

为什么我无法读取只读文件?

来自分类Dev

为什么无法读取我的索引?

来自分类Dev

为什么我无法获取输入值?

来自分类Dev

为什么我无法获得输入值

来自分类Dev

为什么我的输入功能无法正确输入?

来自分类Dev

为什么我的日期输入不读取模型值?

来自分类Dev

为什么不能使用此scanf函数读取输入字符串?

来自分类Dev

为什么我的应用无法从我的API读取JSON?

来自分类Dev

为什么我的BufferedReader无法正确读取我的文件?

来自分类Dev

为什么scanf跳过'\ r'但读取'\ n?

来自分类Dev

为什么scanf跳过'\ r'但读取'\ n?

来自分类Dev

为什么读取EOF使scanf返回4294967295?

来自分类Dev

为什么scanf函数要求额外的输入?

来自分类Dev

C scanf()无法解析我的输入

来自分类Dev

为什么git无法在Yosemite中读取我的证书文件?

来自分类Dev

为什么我的Java代码无法读取条件?

来自分类Dev

为什么无法读取我的/ etc / hosts文件?

来自分类Dev

为什么我的程序无法从文件中读取数据

来自分类Dev

为什么我的Android应用无法从存储读取?

来自分类Dev

如果我以前输入某个输入,为什么scanf()不等待下一个输入

来自分类Dev

为什么我在大输入下用scanf遇到分段错误

来自分类Dev

为什么scanf(“%[^ \ n] \ n”,titre); 问我第三次输入

来自分类Dev

当我使用scanf时,为什么空间与输入不一样?

来自分类Dev

为什么我在大输入时用scanf遇到分段错误

来自分类Dev

为什么 scanf 总是给我第一个输入零?

来自分类Dev

为什么我的Bootstrap输入无法正确对齐?

Related 相关文章

  1. 1

    为什么我的程序无法读取用户输入?

  2. 2

    为什么scanf无法正确读取该值?

  3. 3

    为什么我无法使用jquery读取angular js输入值?

  4. 4

    为什么我无法读取只读文件?

  5. 5

    为什么无法读取我的索引?

  6. 6

    为什么我无法获取输入值?

  7. 7

    为什么我无法获得输入值

  8. 8

    为什么我的输入功能无法正确输入?

  9. 9

    为什么我的日期输入不读取模型值?

  10. 10

    为什么不能使用此scanf函数读取输入字符串?

  11. 11

    为什么我的应用无法从我的API读取JSON?

  12. 12

    为什么我的BufferedReader无法正确读取我的文件?

  13. 13

    为什么scanf跳过'\ r'但读取'\ n?

  14. 14

    为什么scanf跳过'\ r'但读取'\ n?

  15. 15

    为什么读取EOF使scanf返回4294967295?

  16. 16

    为什么scanf函数要求额外的输入?

  17. 17

    C scanf()无法解析我的输入

  18. 18

    为什么git无法在Yosemite中读取我的证书文件?

  19. 19

    为什么我的Java代码无法读取条件?

  20. 20

    为什么无法读取我的/ etc / hosts文件?

  21. 21

    为什么我的程序无法从文件中读取数据

  22. 22

    为什么我的Android应用无法从存储读取?

  23. 23

    如果我以前输入某个输入,为什么scanf()不等待下一个输入

  24. 24

    为什么我在大输入下用scanf遇到分段错误

  25. 25

    为什么scanf(“%[^ \ n] \ n”,titre); 问我第三次输入

  26. 26

    当我使用scanf时,为什么空间与输入不一样?

  27. 27

    为什么我在大输入时用scanf遇到分段错误

  28. 28

    为什么 scanf 总是给我第一个输入零?

  29. 29

    为什么我的Bootstrap输入无法正确对齐?

热门标签

归档