gpt4 book ai didi

c - 在 for 循环中使用 scanf

转载 作者:太空狗 更新时间:2023-10-29 17:22:44 25 4
gpt4 key购买 nike

这是我的 C 代码:

int main()
{
int a;
for (int i = 0; i < 3; i++)
scanf("%d ", &a);

return 0;
}

当我输入1 2 3之类的东西时,它会要求我输入更多,我需要输入的不是' '。

但是,当我将其更改为(或其他不是 ' ' 的东西)

scanf("%d !", &a);

并输入1! 2! 3!,它不会要求更多的输入。

最佳答案

scanf("%d ", &a); 中的最后一个空格指示 scanf 消耗数字后面的所有空格。它将继续从 stdin 读取数据,直到您键入非空格的内容。以这种方式简化格式:

scanf("%d", &a);

scanf 仍然会忽略数字前的空格。

相反,格式 "%d !" 会占用数字后面的所有空格和单个 !。当它得到这个字符或它留在输入流中的另一个非空格字符时,它会停止扫描。您无法从返回值判断它是否与 ! 匹配。

scanf 非常笨拙,很难正确使用它。通常最好使用 fgets() 读取一行输入并使用 sscanf() 或更简单的函数(例如 strtol())解析它>、strspn()strcspn()

关于c - 在 for 循环中使用 scanf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34117773/

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