gpt4 book ai didi

c - 在 C 中扫描整数后扫描字符数组

转载 作者:行者123 更新时间:2023-11-30 18:29:31 24 4
gpt4 key购买 nike

我是编程新手。当我在扫描整数后输入字符数组时,这让我很困惑。它无法正常工作。代码如下:

#include <stdio.h>
#include <stdlib.h>

int main()
{
char a[30];
int x,y;
scanf("%d",&x);
scanf("%[^\n]",a);
scanf("%d",&y);
printf("%d\n%s\n%d",x,a,y);
return 0;
}

输出如下: enter image description here

最佳答案

问题是由于空格造成的。在scanf("%d",&x);之后最后输入的'\n' 字符被取出并保存为 scanf("%[^\n]",a) 的字符串 a

<小时/>

为了避免这种情况,请在 scanf() 语句中给出空格

scanf(" %[^\n]",a);//give a space

Why to give a space?

By giving a space,the compiler consumes the '\n' character or any other white space ('\0','\t' or ' ' ) from the previous scanf()

<小时/>

您的代码:

#include <stdio.h>
#include <stdlib.h>

int main()
{
char a[30];
int x,y;
scanf("%d",&x);
scanf(" %[^\n]",a);//give a space
scanf("%d",&y);
printf("%d\n%s\n%d",x,a,y);
return 0;
}

关于c - 在 C 中扫描整数后扫描字符数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37724572/

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