假设用户输入 3 5在一条线上 那么我必须能够将它们存储在2个变量中。 用户将在一行中输入多个变量的数据,当按下Enter时,我必须能够获取每个数据并将它们存储在单独的变量中。 知道该怎么办?
答案 0 :(得分:1)
读取整行直到ENTER键,然后使用'空格'对字符串进行标记。作为分隔符。这样,您可以根据需要读取任意数量的值。
答案 1 :(得分:0)
我能想到很多可能的解决方案。
各种解决方案是:
va_list
(可变参数列表)。我告诉你如何实现第一个。剩下的就是你试试。
while((ch = getchar()) != '\n')
{
if(ch == ' ')
{
a[count++] = atoi(numString);
i = 0;
numString[i] = '\0';
}
numString[i++] = ch;
numString[i] = '\0';
}
a[count++] = atoi(numString);
答案 2 :(得分:-2)
使用scanf()
。 scanf()可以读取空格分隔的输入数字
你可以用
scanf("%d%d",&a,&b)
2个数字。如果在编译时未知输入数量,请使用数组。处理变量很容易。如果[]是变量的数组,那么
a[0],a[1],a[2]....
如果输入数量未知,则使用类似
的内容int a[MAX_SIZE],n,i;
printf("Enter no of inputs");
scanf("%d",&n);
for(i=0;i<n;i++)
sacnf("%d",&a[i]);
使用#define在程序的开始处根据需要定义MAX_SIZE。
您甚至可以阅读input as string
,然后使用strtok()
将字符串分成标记,并使用atoi()
获取数字。如果你不知道输入的数量,可以使用这种方法。