我知道我可以使用
scanf("%d %d %d",&a,&b,&c):
但是如果用户首先确定该行中有多少输入呢?
答案 0 :(得分:3)
您正在读取输入的数量,然后重复(在循环中)读取每个输入,例如:
#include <stdio.h>
#include <stdlib.h>
int main(int ac, char **av)
{
int numInputs;
int *input;
printf("Total number of inputs: ");
scanf("%d", &numInputs);
input = malloc(numInputs * sizeof(int));
for (int i=0; i < numInputs; i++)
{
printf("Input #%d: ", i+1);
scanf("%d", &input[i]);
}
// Do Stuff, for example print them:
for (int i=0; i < numInputs; i++)
{
printf("Input #%d = %d\n", i+1, input[i]);
}
free(input);
}
答案 1 :(得分:0)
读入整行,然后使用循环来解析你需要的东西。
为了帮助您入门:
1)以下是getline(3)的手册页: http://man7.org/linux/man-pages/man3/getline.3.html
2)getline的一些替代方案: How to read a line from the console in C?
3)考虑压缩空格: How do I replace multiple spaces with a single space?
4)使用循环进行解析。您可以考虑标记: Tokenizing strings in C
5)小心并记住您的用户可以输入任何内容。