gpt4 book ai didi

c - 部分匹配后,scanf() 忽略输入的剩余部分?

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

scanf() 的预期行为是在部分匹配格式字符串后忽略输入的剩余部分吗?

源代码:

#include <stdio.h>

int main()
{
int a=0, b=0;
b = scanf("abc %d def", &a);
printf("a=%d, b=%d\n", a, b);
return 0;
}

输出(顺便说一句,我使用的是 GCC 6):

$ ./test_scanf01
abc 123 def
a=123, b=1
$ ./test_scanf01
fff 444 zzz
a=0, b=0
$ ./test_scanf01
abc 333 rrrr
a=333, b=1

最佳答案

是的,只要输入与格式匹配,scanf 就会读取。一旦出现不匹配,scanf 就会停止读取并将其余部分留在缓冲区中。

例如,如果你有

scanf("%d %d", &int_var_1, &int_var_2);

输入是

123 abc

然后只有 "123 " 部分会被读取。字母 “abc”(和尾随的换行符)将留在输入缓冲区中以供下一个输入操作读取。

关于c - 部分匹配后,scanf() 忽略输入的剩余部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53329642/

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