首页 > 解决方案 > 在 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;
}

标签: cloopsif-statementinputfgets

解决方案


推荐阅读