如何在 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
当你从句子中取出每个单词时,你可以将它分配给一个变量或按你的意愿处理它
我目前在从 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
当你从句子中取出每个单词时,你可以将它分配给一个变量或按你的意愿处理它