使用 fgetc() 循环时存储单独的字符
Storing separate characters while looping with 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);
我知道你接下来可能想阅读以下带有大量数字的行,所以这里有一个通用的解决方案,可能适用于任何长度的字符串(即少于一百个数字):
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
将指向最后一个后面的字符。
所以我一直在尝试使用 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);
我知道你接下来可能想阅读以下带有大量数字的行,所以这里有一个通用的解决方案,可能适用于任何长度的字符串(即少于一百个数字):
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
将指向最后一个后面的字符。