从c中的txt文件中读取不同数据类型的行

问题描述 投票:0回答:1

如果我想将数据存储在不同的变量中,如何从txt文件中读取多行?每行包含相同的数据类型顺序:int string string char string,用制表符分隔。

例如 txt 文件中的一行如下所示:

11 \t I would like an apple \t What is your favourite car brand? \t b \t elephant 

提前感谢您的帮助。

我尝试用 fscanf(“%d %s %s %c %s ”,..);但我无法读取字符串,因为 %s 在第一个空格处切断了我的句子,并且它只读取第一行,我无法移动到下一行。

c string file filereader file-read
1个回答
0
投票

嗨,亲爱的,试试这个: #包括


int main() {
    FILE *file = fopen("file.txt", "r");
    if (file == NULL) {
        printf("Error opening the file.\n");
        return 1;
    }

    int intValue;
    char string1[100]; // Assuming max length of string is 100
    char string2[100]; // Assuming max length of string is 100
    char charValue;
    char string3[100]; // Assuming max length of string is 100

    while (fscanf(file, "%d\t%99[^\t]\t%99[^\t]\t%c\t%99[^\t]\n", &intValue, string1, string2, &charValue, string3) == 5) {
        // Process the variables here
        printf("Int: %d\n", intValue);
        printf("String 1: %s\n", string1);
        printf("String 2: %s\n", string2);
        printf("Char: %c\n", charValue);
        printf("String 3: %s\n", string3);
    }

    fclose(file);
    return 0;
}
© www.soinside.com 2019 - 2024. All rights reserved.