jhanidis Δημοσ. 12 Νοεμβρίου 2010 Δημοσ. 12 Νοεμβρίου 2010 Καλησπέρα!Στο εξής πρόγραμμα πρέπει ο χρήστης να δίνει μια απάντηση (insert ή delete ή quit) το πρόγραμμα να μετατρέπει τους χαρακτήρες της απάντησης σε πεζούς και έπειτα να εκτελεί τις ανάλογες εντολές για την ανάλογης απάντηση.Όμως το πρόγραμμα όταν τρέχει εκτυπώνει συνεχώς έναν πίνακα και το "What do you want to do" δηλαδή ο βρόγχος είναι ατέρμων και αυτό οφείλεται στο ότι δεν λειτουργεί το scanf apantisi, δηλαδή το πρόγραμμα δε σταματάει για να δωθεί μια απάντηση και έτσι κάνει άπειρους κύκλους. Μπορεί κανείς να βρει το λάθος στο πρόγραμμα? Ευχαριστώ πολύ! int i,grammh,sthlh,arithmos; char apantisi[N]; char insert[]="insert"; char delete[]="delete"; char quit[]="quit"; do { ektypwsi(); /*εκτυπώνει έναν πίνακα*/ printf("What do you want to do?\n"); scanf("%6s", apantisi); for (i=0; i<N; i++) { apantisi=tolower(apantisi); } if (strcmp(apantisi, insert)== 0) { mpla mpla mpla... } } else if (strcmp(apantisi, delete)==0) { mpla mpla mpla... } } }while (strcmp(apantisi, quit)!=0);
macabre_sunsets Δημοσ. 12 Νοεμβρίου 2010 Δημοσ. 12 Νοεμβρίου 2010 >int i,grammh,sthlh,arithmos; char apantisi[N]; char insert[]="insert"; char delete[]="delete"; char quit[]="quit"; do { ektypwsi(); /*εκτυπώνει έναν πίνακα*/ printf("What do you want to do?\n"); scanf("%6s", apantisi); for (i=0; i<N; i++) { apantisi[i]=tolower(apantisi[i]); } if (strcmp(apantisi, insert)== 0) { mpla mpla mpla... getchar(); } } else if (strcmp(apantisi, delete)==0) { mpla mpla mpla... getchar(); } } }while (strcmp(apantisi, quit)!=0);[/quote]
jhanidis Δημοσ. 12 Νοεμβρίου 2010 Μέλος Δημοσ. 12 Νοεμβρίου 2010 Ευχαριστώ για την απάντηση!Γιατί να βάλω το getchar ?
macabre_sunsets Δημοσ. 12 Νοεμβρίου 2010 Δημοσ. 12 Νοεμβρίου 2010 Άμα δεν το βάλεις τότε θα πρέπει να βάλεις κάποιου άλλου είδος "pause" ώστε να σταματάει το πρόγραμμα όταν μπαινει σε κάθε if για να μπορείς να δεις το output του.
jhanidis Δημοσ. 12 Νοεμβρίου 2010 Μέλος Δημοσ. 12 Νοεμβρίου 2010 Ίσως να μην ήμουν σαφής στο ερώτημα ή δεν καταλαβαίνω την απάντηση.. :-\ τεσπα. το πρόβλημα μου είναι ότι το πρόγραμμα δεν σταματάει στο scanf ώστε να δωθεί κάποια τιμή..γιατί συμβαίνει αυτό?
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.