检查用户是否在一行中输入数据?

时间:2015-11-16 13:06:35

标签: c

检查用户是否在一行上输入多个数据并用逗号分隔它们的最简单方法是什么。 这就是我所尝试过的,但即使我在两个不同的行上输入数字,该程序也会说好。

#include <stdio.h>
int main(void) {

        float num1, num2;

        printf("Enter first and second numbers: ");
        if (scanf("%f,%f", &num1, &num2) ) {

                printf("Good \n");
        }
        else {
                printf("Bad \n");
        }
}

最简单的方法,因为我是C编程的新手。

1 个答案:

答案 0 :(得分:2)

您可以使用fgets()只读一行,如果您不想限制给定行的长度,可以使用getchar()

#include <stdio.h>
#include <string.h>

int main(void)
{
    char line[1000];

    /* Read exactly one line of input or sizeof(line) - 1 characters */
    if (fgets(line, sizeof(line), stdin) == NULL)
        return -1; /* unexpected error */
    if (strchr(line, ',') == NULL)
        return -1; /* there are no `,' in the input */
    /* Process the input which apparently is comma separated data */
    return 0;
}