Abfrage funkt nicht???



  • Guten Abend geehrte Community

    Ich verstehe nicht warum der Code ab der Abfrage Holz alle restlichen Abfragen überspringt.

    // Nachhilfe-Holz_2.cpp : Defines the entry point for the console application.
    //
    
    #include "stdafx.h"
    #include <conio.h>
    #include <ctype.h>
    #include <stdio.h>
    
    int _tmain(int argc, _TCHAR* argv[])
    {
    	//Definition
    	char vorname[20];
    	char nachname[20];
    	char adresse[20];
    	char ort[20];
    	char plz[20];
    	char verpackung[10];
    	char lieferung[14];
    	char holz[10];
    	char h, v, l;
    	int kilo, preis, verpackungspreis, lieferungspreis, gesamtpreis;
    
    	printf("Holzverkauf\n");
    	//Einlesen
    	printf("Vorname:");
    	fgets(vorname, 20, stdin);
    	printf("Nachname:");
    	fgets(nachname, 20, stdin);
    	printf("Adresse:");
    	fgets(adresse, 20, stdin);
    	printf("Ort:");
    	fgets(ort, 20, stdin);
    	printf("PLZ:");
    	fgets(plz, 20, stdin);
    
    	//Holz
    	printf("Holz:");
    	scanf("Holz= %c", &h);
    	if (h == 'E')
    	{
    		holz[0] = 'E';
    		holz[1] = 'i';
    		holz[2] = 'c';
    		holz[3] = 'h';
    		holz[4] = 'e';
    		preis = 5;
    	}
    
    	if(h == 'Z')
    	{
    		holz[0] = 'Z';
    		holz[1] = 'e';
    		holz[2] = 'd';
    		holz[3] = 'e';
    		holz[4] = 'r';
    		preis = 3;
    	}
    
    	if(h == 'B')
    	{
    		holz[0] = 'B';
    		holz[1] = 'u';
    		holz[2] = 'c';
    		holz[3] = 'h';
    		holz[4] = 'e';
    		preis = 7;
    	}
    
    	if(h == 'L')
    	{
    		holz[0] = 'L';
    		holz[1] = 'e';
    		holz[2] = 'r';
    		holz[3] = 'c';
    		holz[4] = 'h';
    		holz[5] = 'e';
    		preis = 9;
    	}
    
    	if(h == 'F')
    	{
    		holz[0] = 'F';
    		holz[1] = 'i';
    		holz[2] = 'c';
    		holz[3] = 'h';
    		holz[4] = 't';
    		holz[5] = 'e';
    		preis = 100;
    	}
    	//??>
    
    	printf("Kilo:");
    	scanf("%d", &kilo);
    
    	printf("Verpackung:");
    	scanf("Verpackung = %c", &v);
    	if(v == 'N')
    	{
    		verpackung[0] = 'N';
    		verpackung[1] = 'o';
    		verpackung[2] = 'r';
    		verpackung[3] = 'm';
    		verpackung[4] = 'a';
    		verpackung[5] = 'l';
    		verpackungspreis = 0;
    	}
    
    	if(v == 'E')
    	{
    		verpackung[0] = 'E';
    		verpackung[1] = 'x';
    		verpackung[2] = 't';
    		verpackung[3] = 'r';
    		verpackung[4] = 'a';
    		verpackungspreis = 5;
    	}
    
    	printf("Lieferung:");
    	scanf("Lieferung = %c", &l);
    	if(l == 'N')
    	{
    		lieferung[0] = 'N';
    		lieferung[1] = 'o';
    		lieferung[2] = 'r';
    		lieferung[3] = 'm';
    		lieferung[4] = 'a';
    		lieferung[5] = 'l';
    		lieferungspreis = 0;
    	}
    
    	if(l == 'PV')
    	{
    		lieferung[0] = 'P';
    		lieferung[1] = 'r';
    		lieferung[2] = 'e';
    		lieferung[3] = 'm';
    		lieferung[4] = 'i';
    		lieferung[5] = 'u';
    		lieferung[6] = 'm';
    		lieferung[7] = 'v';
    		lieferung[8] = 'e';
    		lieferung[9] = 'r';
    		lieferung[10] = 's';
    		lieferung[11] = 'a';
    		lieferung[12] = 'n';
    		lieferung[13] = 'd';
    		lieferungspreis = 20;
    	}
    
    	if(l == 'PE')
    	{
    		lieferung[0] = 'P';
    		lieferung[1] = 'r';
    		lieferung[2] = 'e';
    		lieferung[3] = 'm';
    		lieferung[4] = 'i';
    		lieferung[5] = 'u';
    		lieferung[6] = 'm';
    		lieferung[7] = 'e';
    		lieferung[8] = 'x';
    		lieferung[9] = 'p';
    		lieferung[10] = 'r';
    		lieferung[11] = 'e';
    		lieferung[12] = 's';
    		lieferung[13] = 's';
    		lieferungspreis = 300;
    	}
    
    	gesamtpreis = (kilo * preis) + verpackungspreis + lieferungspreis;
    
    	printf("Vielen Dank für ihre Bestellung Herr %s %s, Versand von %d kg, %s, %s verpackt, mit %s versandt. Gesamtpreis %d €", vorname, nachname, kilo, holz, verpackung, lieferung, gesamtpreis); 
    
    	getch();
    	return 0;
    }
    

    😕



  • Sorry weiß immer noch nicht wie man Code tags anwendet.



  • Entferne das Holz= beim scanf.

    Und schau dir mal die Standardfunktion strcpy an



  • und Ein char kann nur ein Zeichen aufnehmen. 'PV' geht nicht.



  • Super das char hab ich ausgebessert und bei den scanf's auch



  • Ich durchschaue aber die Funktion strcpy nicht.
    Für was brauch ich sie?



  • Ich muss jetzt leider weg, ich danke bis jetzt für dein Hilfe.
    Ich kuk morgen noch mal nach.

    Guten Abend noch. 🙂



  • C-Laus schrieb:

    Ich durchschaue aber die Funktion strcpy nicht.
    Für was brauch ich sie?

    strcpy(lieferung, "Nachnahme");
    

    ist angenehmer zu schreiben und zu lesen.
    Zudem sind die Strings dann Nullterminiert. Dann klappt das auch mit dem printf richtig.



  • Ist fürs Programmieren nicht ganz so wichtig. Nur der Anwender deines Programms wird sich wundern. 😮

    Was sollen Vögel beim Holzhandel 😕 😃

    Lerche = Vogelart der Sperlingsvögel, Unterart Singvögel
    Lärche = Nadelbaum gehört zu den Kiefernarten und verliert im Winter in Europa die Nadeln

    Da ich diese Verwechslung dieses Jahr schon mehrmals sah, muss der Duden wohl in ein paar Jahren umgeschrieben werden?



  • Gut - Holz schrieb:

    Was sollen Vögel beim Holzhandel 😕 😃

    Das umgeht das Problem mit dem Umlaut. 🤡



  • Ich danke euch für diese Antworten
    Schönen Tach noch



  • Falls du dich wunderst, warum deine Ausgabe "Vielen Dank für ihre Best ...." über mehrere Zeilen geht:
    Das fgets liest das '\n' von der Entertaste mit ein und speichert es mit im String ab.


Log in to reply