c - 在 switch、循环或 if 语句中 c 中的 fgets() 输入有什么问题?
问题描述
我尝试使用 fgets() 函数请求一些字符串输入,只要我不尝试围绕它构建循环或 if 语句,它就可以工作。我想我需要用一个指针来解决这个问题,但是名为“city”的 char 数组已经充当了一个。我有什么错?
#include <stdio.h>
//#include <string.h>
int main(){
int anfangEnde;
char city[20];
/*This is a comment*/
do{
printf("Tippe 1 fuer fortfahren und 2 fuer beenden:\n");
scanf("%d", &anfangEnde);
switch(anfangEnde){
case 1:
printf("gebe Stadtnamen ein: \n");
fgets(city, 20, stdin);
//Input geht nicht in if Statements. KP wieso.
printf("%sund es hat hingehauen.\n", city);
break;
case 2:
printf("Programm beendet\n");
break;
default:
printf("Fehlerhafte Eingabe\n");
}
}while((anfangEnde != 1) && (anfangEnde != 2));
return 0;
}
解决方案
推荐阅读
- shell - 使用 sed 在同一行上匹配相同的模式 n 次
- android - 2x 导航栏 Android
- javascript - 数据表导出到具有数据类型的 excel
- python - 如何在 Python 中解压缩已用 gzip 压缩的文本?
- time - 奇怪的时间格式
- angular - 在 Angular6 中上传到 AWS S3 之前更改文件名
- erlang - Erlang/Elixir 中如何进行消息恢复
- filtering - 更改 mapbox 图层中特定点的颜色
- java - 无法解析 com.android.tools.build:gradle:3.1.4,react-native run-android
- python - 将文件输入的标准输出保存到文件