2016-07-11 13 views
0

drucken Ich arbeite an einem einfachen Hotel Reservation Projekt, aber ich konnte nicht den Kundennamen und Zahlungsart nach der Eingabe ihrer Namen 'drucken. Hier ist der Code, den ich eingegeben habe.Wie kann ich ein Char-Array in C++

cout << "Please enter the customer name: " << endl; 
cin >> customername1; 
cin.getline(customername1,100,'\n'); 
fflush(stdin); 
cout << "Please enter the payment type: " << endl; 
cin >> paymenttype; 
cin.getline(paymenttype,100,'\n'); 
fflush(stdin); 
cout << "How many days would you like to stay: " << endl; 
cin >> days; 
room_income = days * 30; 
count_room++ ; 
count_customer1++ ; 
customer_name1[single]= new char [strlen(customername1)+1]; 
strcpy(customer_name1[single],customername1); 
payment_type[single]= new char [strlen(paymenttype)+1]; 
strcpy(payment_type[single],paymenttype); 
cout << "Room number : " << single << endl<< endl; 
cout << "Customer name : "<< customer_name1 << endl << endl; 
cout << "Payment type : "<< payment_type << endl<< endl; 
cout << "Number of day for accomodation :"<< days << endl<< endl; 
cout << "Income for this room : "<< room_income<< endl<< endl; 

Einige Zufallszahlen und Buchstaben werden für den Kundennamen und die Zahlungsart angezeigt. Wie kann ich sie richtig schreiben?

+2

Was ist die Art von sagen 'customername1'? Warum lesen Sie es zweimal? ('>>' und 'getline') –

+6

' new char [strlen (kundenname1) +1]; 'woooah da! Wie wäre es stattdessen mit einem netten Spiel von 'std :: string'? –

+1

'cin >> Kundenname1;' liest schon die Eingabe, warum machst du 'cin.getline (Kundenname1,100, '\ n');' danach ?? –

Antwort

1

Für den Kundennamen und Zahlungsart versuchen Sie, das Array anstelle von einem Element zu drucken. Da das Array im Grunde nur ein Zeiger auf das erste Element ist, erhalten Sie eine "Zufallszahl", die die Speicheradresse ist.

Versuchen:

cout << "Customer name : "<< customername1 << endl << endl; 
cout << "Payment type : "<< paymenttype << endl<< endl; 

Und wenn Sie, dass die Arbeit haben, folgen die Kommentare und schauen Sie in std :: string und Vektoren ...

+0

Ja, Sie haben recht und ich denke auch cin.getline (Kundenname1,100, '\ n') ist unnötig – erengsgs

+0

@NathanOliver: Nein, schauen Sie sich die Namen der Variablen genau an ... OP, Sie haben Recht mit Ihrem Kommentar . – DrDonut

+0

Guter Anruf. Nervige kleine Unterstreichungen. – NathanOliver