000
14.09.2008, 20:32 Uhr
~Toni
Gast
|
Hallo!
Habe folgendes Programm geschrieben, das eine Liste von Namen einlesen und alphabetisch ausgeben soll. Leider nimmt es nach der Eingabe der Liste keine weitere Eingabe mehr entgegen. Legt es am Puffer?
Vielen Dank für Eure Hilfe schonmal im Voraus!
C++: |
#include <iostream> #include <string.h>
using namespace std;
int main() { int i, j, k, opt; char namen[100][30], temp[30]; do { for(i=0; i<100; i++) for(k=0; k<30; k++) namen[i][k] = '\0'; cout << "Bitte bestätigen Sie jeden eingegebenen Namen mit <Enter>\n" "und beenden die Eingabe mit Strg-Z und <Enter>.\n\n"; for(i=0; i < 99 && (*namen[i-1] != EOF); i++) cin.getline(namen[i], 30 , '\n'); cout << "\nFolgende Optionen stehen Ihnen zur Verfügung:\n" "(1) Neue Liste eingeben\n" "(2) Liste unsortiert ausgeben\n" "(3) Liste alphabetisch sortiert ausgeben\n" "(4) Programm verlassen\n\n";
cin.ignore(10,'\n'); cin >> opt; switch(opt) { case(2): for(i = 0; namen[i][0]; i++) cout << namen[i] << "\n"; cout << "\n\n"; break; case(3): for(i = 0; namen[i][0]; i++); // Bis erstes Nullzeichen-Feld scannen while(i+1) { for (k = i; k + 1 > 0; k--) { if(strcmp(namen[i], namen[i+1]) > 0) { strcpy(temp, namen[i]); strcpy(namen[i], namen[i + 1]); strcpy(namen[i + 1], temp); } } i--; } for(i = 0; namen[i][0]; i++) cout << namen[i] << "\n"; cout << "\n\n"; break; } }while(opt != 4); cout << "Auf Wiedersehen!\n\n"; system("pause"); return 0; }
|
|