在使用fgetc()循环时存储单独的字符

时间:2019-12-08 14:50:05

标签: c fgetc

所以我一直在尝试使用fgetc()逐字符浏览.txt文件。我想将第一个和第三个字符存储到两个单独的变量中。这是一个示例输入文件。在这种情况下,我想将第一个字符(6)存储到变量1,将第三个字符(7)存储到变量2。第二个是空格,所以我想在遍历文件时跳过它。我能够获得第一个字符,但似乎找不到跳到第三个字符并将其存储在其他变量中的方法...

6 7
1 4 4 2 5 0 6
1 4 4 0 4 0 2
1 0 4 0 4 6 1
1 2 7 1 0 4 2
3 1 4 2 3 1 5
4 2 5 0 4 5 5

 int c;

            while((c = fgetc(r)) != '\n'){
                variable1 = c - '0';
                variable2 = ???
                }

            fclose(r);
            }

        printf("%i",variable1);
        printf("%i",variable2);

1 个答案:

答案 0 :(得分:0)

我看到您接下来可能想阅读下面的行,其中包含大量数字,因此,这是一个通用的解决方案,该解决方案可能适用于任何长度的字符串(小于100个数字):

int idx = 0;
char var[100];  // change to any number you need
while((c = fgetc(r)) != '\n') {
    if( c != ' ' ) {
        var[idx++] = c - '0';
    }
}

var中,您将拥有所有电话号码。 idx会指向最后一个字符。