Ankündigung

Einklappen
Keine Ankündigung bisher.

Anfänger-Problem mit char in C

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Anfänger-Problem mit char in C

    Hallo an alle,

    ich habe einen Code aus dem net kopiert, der nach dem Anfangsbuchstaben des Vornamens fragt und diesen in einem printf-Text wiedergibt.

    Code:
    #include <stdio.h>
    #include <string.h>
    
    int main()
    {
    	char c;
    	printf("\nMit welchem Buchstaben beginnt Ihr Vorname? ");
    	c = getchar();
    	printf("\nIch weiss jetzt, dass Ihr Vorname mit '%c' beginnt.\n", c);
    	return 0;
    }
    Funktioniert super.

    Nun möchte ich aber auch direkt nach dem Anfangsbuchstaben des Nachnamens fragen und erst dann den Text ausgeben - dazu habe ich folgendes ausprobiert:

    Code:
    #include <stdio.h>
    #include <string.h>
    
    int main()
    {
    	//char c;
    	//char z;
    	
    	char c[2];
    	char c = {c1, c2};
    	
    	printf("Mit welchem Buchstaben beginnt Ihr Vorname? ");
    	c = getchar(c1);
    	
    	printf("\nMit welchem Buchstaben beginnt Ihr Nachname? ");
    	c = getchar(c2);
    	
    	printf("\nIch weiss jetzt, dass Ihr Vorname mit '%c1' und Ihr Nachname mit '%c2' beginnt.\n", c);
    	
    	return 0;
    }
    Ich habe auch schon unterschiedliche Methoden ausprobiert, wie 'char c; char z;' und auch an den jeweiligen Stellen mit c und z ersetzt. Doch der Anfangsbuchstabe für Nachname muss immer direkt hinter dem des Vornamens geschrieben werden, damit der in den Text mit auftaucht.

    Was muss ich eingeben, damit jeder Buchstabe direkt nach der entsprechenden Frage einzugeben ist und dann auch erst der Text mit den Eingaben erscheint?

    Ich danke euch schon jetzt für eure Hilfe.


    P.s. Ich bin ein ziemlich frischer Neuling in der Programmierwelt, deswegen bitte ich jetzt schonmal vielmals um Verzeihung, falls ich unverständlich geschrieben habe - habs mit dem IT-Slang noch nicht drauf

  • #2
    ... und hier noch die eine Methode von der ich sprach:

    Code:
    int main()
    {
    	char c;
    	char z;
    	
    	printf("Mit welchem Buchstaben beginnt Ihr Vorname? ");
    	c = getchar();
    	
    	printf("\nMit welchem Buchstaben beginnt Ihr Nachname? ");
    	z = getchar();
    	
    	printf("\nIch weiss jetzt, dass Ihr Vorname mit '%c' und Ihr Nachname mit '%c' beginnt.\n", c, z);
    	
    	return 0;
    }

    Kommentar


    • #3
      Ich habe das Problem nun lösen können - jedoch nicht die Löschung dieses Beitrages.

      Kommentar


      • #4
        Hallo neamato,

        die Ursache dafür liegt darin das der Tastaturpuffer bei der ersten Eingabe mit zwei Zeichen gefüllt wird, a und ENTER.

        Das Zeichen ENTER wird mit ASCII-Code 10 (Line Feed lf) wiedergegeben. Um das Problem zu umgehen, ist es möglich die Eingabe ENTER in einer zweiten Variable abzufangen, sodass der Tastaturpuffer geleert wird.

        PHP-Code:
        char abtemp;

        printf("\nGeben sie ein Zeichen ein: ");
        scanf("%c%c", &a, &temp);

        printf("\nGeben sie ein Zeichen ein: ");
        scanf("%c%c", &b, &temp);

        printf("\nDie ASCII-Codes ihrer Zeichen sind %d und %d\n"ab); 
        Du kannst mehrere Eingaben auch folgendermaßen einlesen.

        PHP-Code:
        #include <stdio.h>
        int main()
        {
            
        char firstname[20], lastname[20];
            
        int bir_year;
            
        printf("Ihr Vorname: ");
            
        scanf("%s"firstname);
            
        printf("Ihr Nachname: ");
            
        scanf("%s"lastname);
            
        printf("Ihr Geburtsjahr: ");
            
        scanf("%d", &bir_year);
            
        printf("%s %s %d\n"firstnamelastnamebir_year);
            return 
        0;

        cu

        Kommentar

        Lädt...
        X