gpt4 book ai didi

c - 使用scanf函数

转载 作者:行者123 更新时间:2023-11-30 15:43:03 24 4
gpt4 key购买 nike

我尝试了下面的代码。但是当我输入整数时,程序不要求输入字符。程序执行 printf 行。我应该如何避免上述问题?

#include <stdio.h>
void main()
{
char a[5];
int p;
printf("data\n");
scanf("%d",&p);
scanf ("%c",&a);
printf("--> %c %d\n",a,p);
}

最佳答案

scanf 中放置一个空格,如下所示:

scanf (" %c",&a);
^-------note

这样尾随的换行符就会被吃掉。一旦您在输入整数后按 Enter 键,缓冲区中就会出现一个尾随换行符,第二次调用 scanf 会读取该换行符。另外,根据 ISO,main 应返回 int

这个说法也是不正确的:

char a[5];
printf("--> %c %d\n",a,p);

您正在读取一个字符并打印一个数组。您只需要:

char a;
printf("--> %c %d\n",a,p);

如果您想读取(或获取输入)字符数组,请使用 fgets 。对于 char a[5] 执行如下操作:

fgets (a, 5 , stdin)

因为 fgets 是缓冲区安全的。

关于c - 使用scanf函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19956627/

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