gpt4 book ai didi

c - 程序先绕过fgets

转载 作者:太空宇宙 更新时间:2023-11-04 00:50:19 26 4
gpt4 key购买 nike

问题是当它要求用户输入乐队名称时。程序绕过第一个 fgets,但执行 printf 而不是 fgets。我试图用 if 来处理这个问题,但又是同样的问题。绕过第一个 fgets。我也给你一张图片。

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

struct cd
{
char band[100];
};

struct cd *music;

int main()
{
int n,i;
printf("Give how many albums you want: ");
scanf("%d",&n);
struct cd *music = malloc(sizeof(struct cd)*n);

for(i=0;i<n;i++)
{

printf("\nEnter Band: ");
fgets(music->band,sizeof(music->band),stdin);
music++;
}

for(i=n-1;i>=0;i--)
music--;
for(i=0;i<n;i++)
{
printf("\nBand: %s",music->band);
music++;
}

printf("\n\n");
return 0;
}

enter image description here

最佳答案

Scanf() 将 '\n' 视为一个字符,并且由于它不在格式字符串中,因此将其保留在那里。

试试这个

char newline;
int n,i;
printf("Give how many albums you want: ");
scanf("%d%c",&n,&newline);

这将从标准输入中删除 '\n'。

关于c - 程序先绕过fgets,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21174779/

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