从文件中读取整数并忽略C中的空格

时间:2013-10-06 05:08:54

标签: c whitespace scanf

我正在学习C,而我在C中编写的程序的一部分是检查我的txt文件是否包含少于或多于81个值,以及所有值是否为整数。我使用fscanf从文件中读取值,但它也读取空格。如何忽略空格并使其只读取整数或字符?

我的代码返回162,其中包含81个整数和空格。

这是txt文件:

1 2 3 4 5 6 7 8 9
2 3 4 5 6 7 8 9 1
3 4 5 6 7 8 9 1 2
4 5 6 7 8 9 1 2 3
5 6 7 8 9 1 2 3 4
6 7 8 9 1 2 3 4 5
7 8 9 1 2 3 4 5 6
8 9 1 2 3 4 5 6 7
9 1 2 3 4 5 6 7 8


#include<stdio.h>

int main() {
FILE * input_values;

input_values = fopen("text.txt","r");

    if (input_values == NULL) {
        fprintf(stderr, "Error! Could not open file.\n");
    }

int ch, counter = 0;

ch = fscanf(input_values, "%d");
    while (ch != EOF) {
            counter++;
            ch = fscanf(input_values, "%d");
    }

    printf("num %i",counter);
    fclose(input_values);

}

1 个答案:

答案 0 :(得分:1)

你需要传递fscanf的输出变量,我很惊讶你的代码没有崩溃:

int num;
fscanf(input_values, "%d", &num);

如果您同时更改fscanf

,它会按预期工作