C中的多个控制台输入

时间:2016-02-20 16:33:46

标签: c

有人可以帮我解决这个问题吗?

The Problem

我们不知道用户可能提供的输入数量,这是主要问题!

3 个答案:

答案 0 :(得分:0)

您可以使用scanf函数的返回值:它返回已读取的值的数量,当没有可用的输入时,它将返回-1

这是一个很好的起点:

int x;
while(scanf("%d", &x) == 1) {
    // Code your solution here.
}

答案 1 :(得分:-1)

scanf()的返回值在这里不够。例如," 3 5 a b 7"期望"输入无效"而不是" 8"。

#include <stdio.h>

int main(void)
{
    int num, sum = 0;
    while(scanf(" %d", &num) == 1)
        sum += num;
    if (getchar() == EOF)
        printf("%d\n", sum);
    else
        puts("Invalid Input");
    return 0;
}

答案 2 :(得分:-1)

#include<stdio.h>
int main()
{
    int sum=0,a,d;
    char f;
    while(d=scanf("%d%c",&a,&f))
    {
        sum=a+sum;
        if(f=='\n')
            break;
    }
    if(d==2)
         printf("%d\n",sum);
    else
         printf("Invalid Input\n");
    return 0;
}