【发布时间】:2021-08-06 19:32:19
【问题描述】:
fgets() 正在跳过而不接受输入。我该如何解决?我尝试使用 scanf(),但 scanf() 将输入输入到第一个空格。我想输入诸如:史蒂夫·乔布斯(Steve Jobs)
#include<stdio.h>
int main()
{
// ints
int age;
printf("Enter your age: ");
scanf("%d", &age);
printf("You are %d \n", age);
// chars
char grade;
printf("Enter your grade: ");
scanf(" %c", &grade);
printf("You got an %c on the test \n", grade);
// doubles
double gpa;
printf("Enter your gpa: ");
scanf("%lf", &gpa);
printf("Your gpa is %lf \n", gpa);
// strings
char name[20];
printf("Enter your name:");
fgets( name, 20, stdin); // this line is not working
printf("Hello %s! \n", name);
return 0;
}
【问题讨论】:
-
不要将
fgets()与scanf()混用,反之亦然。 -
这能回答你的问题吗? fgets doesn't work after scanf
-
仅将
fgets()用于干净的输入。使用scanf()继续遇到问题。