在 C 中逐行读取文件中的整数和字符
Read integers AND characters from file line by line in C
我有一个这种形式的 txt 文件:
11
10
BU
1U
0U
0U
...
我想 digit/character 从 C 文件中逐一阅读。
前两行包含 2 个整数,其余行首先包含一个 letter/integer,然后是一个字母。
不幸的是,我不知道如何实现这一点,因为你不知道你读到的是整数还是字符。
有人可以帮我解决这个问题吗?
这是一个关于如何处理文件中的每个字符并在满足时转换为整数的最小示例。我相信您可以尝试根据您的需要调整此代码。
该代码还跳转换行符和 EOF。
要更好地理解其工作原理,请查看标准 ASCII。
#include<stdio.h>
int main(){
FILE * handle;
handle = fopen("data.txt","r");
char var;
while(var!=EOF){
var=fgetc(handle);
if(var>47&&var<58){
printf("Value: %d",var);
printf(" Integer: %d \n",var-48);
}
else if(var!=10 && var!=-1){
printf("Value: %d",var);
printf(" Char or other: %c\n",var);
}
}
}
输出:
Value: 49 Integer: 1
Value: 49 Integer: 1
Value: 49 Integer: 1
Value: 48 Integer: 0
Value: 66 Char or other: B
Value: 85 Char or other: U
Value: 49 Integer: 1
Value: 85 Char or other: U
Value: 48 Integer: 0
Value: 85 Char or other: U
Value: 48 Integer: 0
Value: 85 Char or other: U
我有一个这种形式的 txt 文件:
11
10
BU
1U
0U
0U
...
我想 digit/character 从 C 文件中逐一阅读。 前两行包含 2 个整数,其余行首先包含一个 letter/integer,然后是一个字母。 不幸的是,我不知道如何实现这一点,因为你不知道你读到的是整数还是字符。
有人可以帮我解决这个问题吗?
这是一个关于如何处理文件中的每个字符并在满足时转换为整数的最小示例。我相信您可以尝试根据您的需要调整此代码。 该代码还跳转换行符和 EOF。
要更好地理解其工作原理,请查看标准 ASCII。
#include<stdio.h>
int main(){
FILE * handle;
handle = fopen("data.txt","r");
char var;
while(var!=EOF){
var=fgetc(handle);
if(var>47&&var<58){
printf("Value: %d",var);
printf(" Integer: %d \n",var-48);
}
else if(var!=10 && var!=-1){
printf("Value: %d",var);
printf(" Char or other: %c\n",var);
}
}
}
输出:
Value: 49 Integer: 1
Value: 49 Integer: 1
Value: 49 Integer: 1
Value: 48 Integer: 0
Value: 66 Char or other: B
Value: 85 Char or other: U
Value: 49 Integer: 1
Value: 85 Char or other: U
Value: 48 Integer: 0
Value: 85 Char or other: U
Value: 48 Integer: 0
Value: 85 Char or other: U