如何在 C 中使用 fscanf 从 txt 文件中读取类似数据的句子?

How to read sentence like data from txt file using fscanf in C?

我目前在从 C 语言的 txt 文件中读取数据时遇到问题。 文件中的数据结构是这样的:

Mike 今年 26 岁,住在加拿大。

我想从使用 fscanf 列出的数据中获取姓名、年龄和国家/地区

如果所有句子的模式都相同,您可以逐行阅读文本并将该行拆分为单词。您可以使用以下代码执行此操作:

#include <stdio.h>
#include <string.h>

int main(int argc, char *argv[])
{
    FILE * database;
    char buffer[100];

    database = fopen("test.txt", "r");

    if (NULL == database)
    {
        perror("opening database");
        return (-1);
    }

    while (EOF != fscanf(database, "%[^\n]\n", buffer))
    {
        printf("> %s\n", buffer);
        char * token = strtok(buffer, " ");
         
        while (token != NULL) 
        {
            //First token is the name , third token is the age etc..
            printf( " %s\n", token );//printing each word, you can assign it to a variable
            token = strtok(NULL, " ");  
        }
    }

    fclose(database);

    return (0);
}

对于 fscanf() 我使用下面的 post 你也可以检查它: Traverse FILE line by line using fscanf

当你从句子中取出每个单词时,你可以将它分配给一个变量或按你的意愿处理它