gpt4 book ai didi

c - 为什么我的 for 循环不在第二个循环中打印?

转载 作者:太空狗 更新时间:2023-10-29 16:05:10 26 4
gpt4 key购买 nike

我做了一个 for 循环,将名称存储在一个数组中,用户可以选择它的大小,但是当 for 循环运行时,它会跳过第二个 printf 语句。

int NumToDelete;
printf("How much employees do you want to remove?\n");
scanf(" %d", &NumToDelete);
char Name[NumToDelete][25];
for(int i = 0; i < NumToDelete; i++)
{
fgetc(stdin); //To stop the program from doing
printf("Name: "); //something like this: Name:Name:
fgets(Name[i], 25, stdin);
}

提示和用户输入应如下所示(如果 NumToDelete 为 3):

Name: Ahmed
Name: John
Name: Bob

但是,在输入姓名“Ahmed”之后,我必须在代码再次显示“姓名:”提示之前输入第二个姓名“John”。所以控制台中的文本最终看起来像这样:

Name: Ahmed
John
Name: Bob

名称是用户输入的。提前谢谢你。

最佳答案

我认为 fgetc 应该在 for 循环之外。试试这个代码:

int NumToDelete;
printf("How much employees do you want to remove?\n");
scanf(" %d", &NumToDelete);
fgetc(stdin);
char Name[NumToDelete][25];
for(int i = 0; i < NumToDelete; i++)
{
printf("Name: ");
fgets(Name[i], 25, stdin);
}

原因是 fgets 从其输入中使用尾随换行符,而不是前导换行符。

关于c - 为什么我的 for 循环不在第二个循环中打印?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57540639/

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