Arrays Scanf在C中的数据量不一样
我正在尝试用C语言编写程序代码,但我发现了一个无法解决的问题。我得到一组输入,但输入并不总是相同的。如何使用scanf读取不总是相同数量的数据 输入1): 输入2): 如果我使用这样的东西:Arrays Scanf在C中的数据量不一样,arrays,c,scanf,Arrays,C,Scanf,我正在尝试用C语言编写程序代码,但我发现了一个无法解决的问题。我得到一组输入,但输入并不总是相同的。如何使用scanf读取不总是相同数量的数据 输入1): 输入2): 如果我使用这样的东西: scanf("%s %d %s", a[i], &b[i], c[i]); 终端为我请求更多数据(我理解)。那么,我如何使用scanf有时读取全部三个(字符串、整数、字符串),有时仅读取两个(字符串、整数)?从读取整行开始 char line[100]; scanf(&quo
scanf("%s %d %s", a[i], &b[i], c[i]);
终端为我请求更多数据(我理解)。那么,我如何使用scanf有时读取全部三个(字符串、整数、字符串),有时仅读取两个(字符串、整数)?从读取整行开始
char line[100];
scanf(" %[^\n]", line);
或
然后使用从该行读取值
int itemsRead = sscanf(line, "%s %d %s", a[i], &b[i], c[i]);
sscanf的返回值将告诉您从该行成功读取了多少值。从读取整行开始
char line[100];
scanf(" %[^\n]", line);
int itemsRead = sscanf(line, "%s %d %s", a[i], &b[i], c[i]);
或
然后使用从该行读取值
int itemsRead = sscanf(line, "%s %d %s", a[i], &b[i], c[i]);
sscanf的返回值将告诉您从该行成功读取了多少值。您可以尝试fgets:
int itemsRead = sscanf(line, "%s %d %s", a[i], &b[i], c[i]);
char *fgets(char *s, int size, FILE *stream);
您可以尝试fgets:
char *fgets(char *s, int size, FILE *stream);
使用
fgets
将整行内容读入缓冲区,然后可以使用sscanf
解析其内容。使用fgets
将整行内容读入缓冲区,然后可以使用sscanf
解析其内容。请不要只发布代码作为答案,但也要解释代码的作用以及它如何解决问题。带解释的答案通常更有帮助,质量更好,更容易吸引读者。请不要只发布代码作为答案,还要解释代码的作用以及它如何解决问题。带有解释的答案通常更有帮助,质量更好,更容易吸引选票