Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在一行中输入数据,在C中用空格分隔?_C - Fatal编程技术网

在一行中输入数据,在C中用空格分隔?

在一行中输入数据,在C中用空格分隔?,c,C,假设用户输入 三五合一 然后我必须能够将它们存储在两个变量中。 用户将在一行中输入多个变量的数据,当按下enter键时,我必须能够获取每个数据并将它们存储在单独的变量中。 知道怎么做吗?使用scanf()。可以读取空格分隔的输入数字。 你可以用 scanf("%d%d",&a,&b) 两个号码。如果编译时输入的数量未知,则使用数组。处理变量将很容易。如果[]是数组,则变量为 a[0],a[1],a[2].... 如果输入的数量未知,则使用 int a[MAX_SIZE],n

假设用户输入 三五合一 然后我必须能够将它们存储在两个变量中。 用户将在一行中输入多个变量的数据,当按下enter键时,我必须能够获取每个数据并将它们存储在单独的变量中。 知道怎么做吗?

使用
scanf()
。可以读取空格分隔的输入数字。
你可以用

scanf("%d%d",&a,&b)
两个号码。如果编译时输入的数量未知,则使用数组。处理变量将很容易。如果[]是数组,则变量为

 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]);
inta[MAX_SIZE],n,i;
printf(“输入输入数量”);
scanf(“%d”和“&n”);

对于(i=0;i读取整行直到回车键,然后用空格作为分隔符标记字符串。这样,您可以根据需要读取任意数量的值。

我可以想到许多可能的解决方案

各种解决方案包括:

  • 一个字符一个字符地读输入字符,然后在空格上读,从中创建单词
  • 使用
    va_列表
    (变量参数列表)
  • 连续扫描数字直到行尾
  • 我将向您展示如何实现第一个,其余的供您尝试

    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);
    

    scanf(“%d%d”、&a和&b)
    ???欢迎使用堆栈溢出。请尽快阅读此页。您说的是两个变量,但随后的讨论说的是“多个”。变量数量的限制是什么?您事先知道一行上有多少个值吗?您能将数据存储在数组中吗?他不确定他将需要的变量数量。如果第35个en两个变量,如果3 5 8三个变量,这是他的问题。@pranitkothari,好的,我提到过使用数组来解决这个问题