c - fgets() 没有得到输入
问题描述
fgets() 正在跳过而不接受输入。我该如何解决?我尝试使用 scanf(),但 scanf() 将输入输入到第一个空格。我想接受一个输入,例如:史蒂夫乔布斯
#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;
}
解决方案
这:
scanf("%lf", &gpa);
\n
在标准输入中留下一个换行符
这:
fgets(名称,20,标准输入);
使用换行符后停止输入\n
您可能想了解字符集,类似于:
scanf( "%19[^\n]", name );
或简单地调用:getchar()
调用之前fgets()
推荐阅读
- python - 如何使方法 JSON 可序列化以在自定义 Pyspark 转换器中使用
- angular - 一个 svg 图片文件在 Palette 中渲染成功,但在 Angular 和 GoJS 中却没有
- mysql - 存储过程中查询不使用主索引,速度很慢
- c# - 如何更改 netstandard 2.0 库使用的 Newtonsoft.Json 的版本
- wmi - 设计电压参数是什么意思
- android - collectionGroup 查询可以选择父文档的所有内部文档吗
- ios - 如何在按钮按下时从数组数据中显示 iOS 表格视图 - Swift
- swift - 本地 Bundle.main 的 URL 总是返回 nil
- python - 将元组列表转换为字典
- regex - 如何在 Microsoft Word 中查找每个单词以大写字母开头的短语