Problem mit Eingabe



  • Hallo, ich schreib grad selber an so einer
    Telefonliste. Wenn ich nun eingeben will ignoriert er mir völlig den Namen
    oder setzt Name&Ort zusammen, wo hab ich den Fehler?

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    typedef struct Telefonbuch{
    
    char name[50];
     char ort [50];
    char telefonnummer[50];
    
    } Schwul;
    
    void Erstelle_Eintrag(){
    Schwul NEU;
    FILE *datei;
    printf("Geben Sie den Namen ein:"); fgets(NEU.name,50,stdin);
    printf("Geben Sie den Ort   ein:"); fgets(NEU.ort,50,stdin);
    printf("Geben Sie die Telefonnummer ein:"); fgets(NEU.telefonnummer,50,stdin);
    
    datei = fopen("C:\\Users\\Timo\\Desktop\\New folder\\test.txt", "a");
    fprintf(datei,"%s %s %s", NEU.name, NEU.ort, NEU.telefonnummer);
    
    }
    
    void Ausgeben_Eintrag(){
    FILE *datei;
    datei = fopen("C:\\Users\\Timo\\Desktop\\New folder\\test.txt","r");
    char zeichen;
    while((zeichen = getc(datei)) != EOF){
    printf("%c",zeichen);
    }
    fclose (datei);
    }
    
    int main(){
    
    char auswahl;    
    system("cls");
    printf("Ihre Auswahl:\n");
    printf("E - neuen Eintrag erstellen\n");
    printf("A - Eintrag ausgeben\n");
    printf("Z - Programm beenden\n");
    scanf("%s", &auswahl);
    
    switch(auswahl){
    
    case 'e':
    case 'E':
         Erstelle_Eintrag();
         break;
    case 'a':
    case 'A':
         Ausgeben_Eintrag();
         break;
    case 'z':
    case 'Z':
         return 0;
         break;
    default:
         printf("Ungueltiger Eintrag!\n");
         break;
    }
    
    system("Pause");
    return 0;
    }
    


  • Hallo,
    mach den Eingabepuffer nach scanf leer:

    int cb() { // clear buffer
    	int c, i = 0;
    	while ( ( c = getchar() ) != '\n' && c != EOF )
    	{ i++; } // Die Anzahl der aus dem Eingabepuffer eingelesenen Zeichen zählen, außer dem '\n'.
    	return i;
    }
    

    Gruß,
    B.B.


Anmelden zum Antworten