我试图解析一个包含格式名称的txt文件:
"MARY","PATRICIA","LINDA","BARBARA","ELIZABETH",...
Run Code Online (Sandbox Code Playgroud)
这是我写的代码:
#include <stdio.h>
// Names scores
int problem22() {
FILE *f = fopen("names.txt", "r");
char name[100];
fscanf(f, "\"%[^\"]s", name);
printf("%s\n", name); // MARY
fscanf(f, "\"%[^\"]s", name);
printf("%s\n", name); // ,
fscanf(f, "\"%[^\"]s", name);
printf("%s\n", name); // PATRICIA
return 0;
}
int main() {
problem22();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
每个备用调用fscanf给我一个名字,而另一个则浪费在获取逗号.我尝试了几种格式,但我无法弄清楚如何做到这一点.
任何人都可以用正确的格式帮助我吗?
将输入格式字符串更改为"%*[,\"]%[^\"]"您想要的:
fscanf(f, "%*[,\"]%[^\"]", name);
printf("%s\n", name); // MARY
fscanf(f, "%*[,\"]%[^\"]", name);
printf("%s\n", name); // PATRICIA
fscanf(f, "%*[,\"]%[^\"]", name);
printf("%s\n", name); // LINDA
Run Code Online (Sandbox Code Playgroud)
只是%*跳过匹配的输入。