逐行读取文件并匹配模式 - C
Reading from file line by line and matching pattern - C
我有一个包含如下行的文本文件:
"string maybe contains more than one word - string as the previous -
number"
我用 fgets 逐行读取这个文件,但是 sscanf 只是切断了除第一个字符串之外的所有内容。
我该如何解决这个问题?
char new_name[30], new_district[30], buffer[100];
unsigned new_part_count;
while(fgets(buffer, 100, file)) {
sscanf(buffer, "%s - %s - %u", new_name, new_district, &new_part_count);
}
试试下面的调用
sscanf( buffer, "%29[^-] - %29[^-] - %u", new_name, new_district, &new_part_count );
如果仅使用转换说明符 %s
,则任何白色 space 字符都会终止字符串的输入。
我有一个包含如下行的文本文件:
"string maybe contains more than one word - string as the previous - number"
我用 fgets 逐行读取这个文件,但是 sscanf 只是切断了除第一个字符串之外的所有内容。 我该如何解决这个问题?
char new_name[30], new_district[30], buffer[100];
unsigned new_part_count;
while(fgets(buffer, 100, file)) {
sscanf(buffer, "%s - %s - %u", new_name, new_district, &new_part_count);
}
试试下面的调用
sscanf( buffer, "%29[^-] - %29[^-] - %u", new_name, new_district, &new_part_count );
如果仅使用转换说明符 %s
,则任何白色 space 字符都会终止字符串的输入。