gpt4 book ai didi

c - 试图让 scanf 只查看输入的前 n 个数字

转载 作者:太空宇宙 更新时间:2023-11-04 05:25:52 24 4
gpt4 key购买 nike

我有一个程序,用户可以在其中输入 3 个数字并计算二次公式。我唯一的问题是,当用户输入“1、2、3、4”时,我的程序无法按照我希望的方式运行。它所做的是像正常计算“1,2,3”,但在“4”之后再次尝试。我想告诉用户他们输入了无效的输入,但不确定如何输入。

下面是我的代码:

    printf("Please enter the coefficients a, b, c: ");
num = scanf("%f, %f, %f", &a, &b, &c);

if (num != 3) {
printf("Invalid argument\n");
break;
}

我怎样才能意识到 4 个字符是错误的输入。 (注意:如果我只输入“1,2”或更少的值,它就有效)

最佳答案

你可以这样写:

if ( num != 3 || getchar() != '\n' )

如果您打算在循环中使用此代码(或者在此之后确实有任何其他输入),那么您可能想要刷新 { } 中的缓冲区为此 if :

int ch; 
while ( (ch = getchar()) != '\n' && ch != EOF ) {}

关于c - 试图让 scanf 只查看输入的前 n 个数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27974844/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com