【发布时间】:2019-12-23 17:21:07
【问题描述】:
我创建了一个 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:”提示。所以控制台中的文本最终看起来像这样:
Name: Ahmed
John
Name: Bob
作为用户输入的名称。提前谢谢你。
【问题讨论】:
-
代码不打印名称。代码打印“名称:”,然后在控制台中输入所有内容。
-
发布确切输入的内容。
-
呃,VLA。使用等于或大于 335544 的
NumToDelete测试您的程序。
标签: c arrays string for-loop stdin