我试图使用fscanf()从c中的文本文件中读取名称。但是,此文件中的名称不用空格分隔。我还可以使用此功能分离出每个名字吗?
目前,该文件包含以下文本:
"MARY","PATRICIA"
当我运行以下代码时:
FILE *nameFile;
char name1[100];
char name2[100];
nameFile = fopen("names.txt","r");
fscanf(nameFile, "%s,%s", name1, name2);
printf("name 1 : %s\n name 2 :%s\n", name1, name2);
fclose(nameFile);
我得到以下输出:
name1: "MARY","PATRICIA"
name2:
有没有办法将名称分开,文件中没有空格?
你必须指示fscanf()寻找另一个分隔符,切割字段(使用%[formatter])。
请试试这个:
#include <stdio.h>
int main(int argc, char *argv[])
{
FILE *nameFile;
char name1[100];
char name2[100];
nameFile = fopen("names.txt","r");
fscanf(nameFile, "%[^,],%[^,]\n", name1, name2);
/* or fscanf(nameFile, "%[^,],%s\n", name1, name2); for second string */
printf("name 1 : %s\n name 2 :%s\n", name1, name2);
fclose(nameFile);
return(0);
}