umgang mit char*
-
hallo ich habe die übungsaufgabe 10 namen in ein char* array einzulesen
ich habe eines erstellt mit char* namen[10]
nur wie kann ich da was reinschreiben?
etwas in der art cin >> namen[0];
klappt nicht, und string darf ich nicht verwenden...kann einer ein minimalbeispiel liefern das funktioniert?
-
int main( int argc, char *argv[] ) { char pText[255]; cin >> pText; cout << pText << endl; }char* namen[10] ist kein char array sonder ein pointer-to-char array.
-
anscheinend kann ichs nicht ganz klar erklären:
hier die aufgabe:Schreiben Sie ein C oder C++ Programm, welches folgende 3 Aufgabe erledigt:
- Sie können in einem ersten Schritt 10 Paare (Nachname, Matrikelnummer) in zwei Feldern vom Typ char*[10] und int[10] eintragen. An der Stelle i des jeweiligen Feldes stehen die zueinander gehörenden Daten. Dabei sind die Namen maximal 20 Zeichen lang und die Matrikelnummer ist höchstens 7-stellig.
ich mach es grade mit string array aber das muss ich dann ausbessern...
-
also was ich brauche ist ein array in dem ich 10 strings speichern kann
nur eben nicht string namen[10]
sondern statt string soll ich char* verwenden... wie geht das?
-
Also ich verstehe ehrlich gesagt das Problem nicht das du damit hast. du sollst es als char und damit als CString machen.
char namen[10][21];//21 da Namen maximal 20 Zeichen haben aber ein '\0' noch Platz finden sollte for(int i=0;i<10;++i) { int j=0; while(true) { char tmp; cin.get(tmp); if(tmp=='\n') { namen[i][j]='\0'; break; } else { namen[i][j]=tmp; ++j; if(j==20) { namen[i][j]='\0'; break; }; }; }; //hier noch die Nummer einlesen };Das löst das problem, geht evtl sogar noch etwas eleganter, aber funktioniert.
-
danke
