jimmysnn_17 Δημοσ. 28 Νοεμβρίου 2010 Δημοσ. 28 Νοεμβρίου 2010 καλησπέρα!!Μήπως μπορεί να δει κανείς που είναι το λάθος στη case1 με τη gets() και δεν με αφήνει να εισάγω το string? #include <stdio.h> #include <stdlib.h> #include <string.h> int main() { int i; //menu: puts("To hmerologio mou:"); for(i=0;i<34;i++) printf("* "); puts(""); puts("* 1. Epilogi imeras gia na grafei simeiwsh. *"); puts("* 2. Emfanisi simeiwshs mia sigkekrimenis imeras. *"); puts("* 3. Emfanisi olwn twn simeiwsewn tou imerologiou. *"); puts("* 4. Eksodos apo to imerologio mou. *"); for(i=0;i<34;i++) printf("* "); puts(""); //main prog: char cal[30][40]; int choise,day; int len; for(i=0;i<30;i++) cal[0]='\0'; do { puts("Dose ena arithmo:"); scanf("%d",&choise); switch(choise) { case 1: puts("Dose mia imera:"); scanf("%d",&day); puts("Dose tin simeiwsh:") ; gets(cal[day]); break; case 2: puts("Dose tin imera gia na emfanistei i antistoixh simeiwsh:"); scanf("%d",&day); len=strlen(cal[day]); if(len==0) puts("Den iparxei simeiwsh gia tin sigkekrimeni mera"); else puts(cal[day]); break; case 3: for(i=0;i<30;i++){ if(strlen(cal)!=0) { printf("Simeiwsh %dhs meras:\n",i+1); puts(cal); } } case 4: break; } }while(choise!=4); system("pause"); return 0;
jms Δημοσ. 28 Νοεμβρίου 2010 Δημοσ. 28 Νοεμβρίου 2010 γιατί αφού χρησιμοποιείς και στις άλλες scanf δεν χρησιμοποιείς και εκεί ? >scanf("%s",cal[day]); αυτό δουλεύει μια χαρά. Τώρα αν θες να χρησιμοποιήσεις το gets τότε θα πρέπει πριν την εντολή gets να βάλεις ένα getchar() >getchar(); gets(cal[day]); και θα είσαι μια χαρα! Τώρα αυτό που συμβαίνει είναι ότι η gets "πιάνει" το enter που πάτησες πριν και για αυτό δεν σε αφήνει να περάσεις τιμή
jimmysnn_17 Δημοσ. 28 Νοεμβρίου 2010 Μέλος Δημοσ. 28 Νοεμβρίου 2010 θέλω την gets για να εισάγω πρώταση... Ευχαριστώ πολύ για τη βοήθεια!!!
Επισκέπτης Δημοσ. 28 Νοεμβρίου 2010 Δημοσ. 28 Νοεμβρίου 2010 ρίξε μια ματιά στην συνάρτηση getline: http://www.gnu.org/s/libc/manual/html_node/Line-Input.html
virxen75 Δημοσ. 28 Νοεμβρίου 2010 Δημοσ. 28 Νοεμβρίου 2010 θέλω την gets για να εισάγω πρώταση... Ευχαριστώ πολύ για τη βοήθεια!!! δοκίμασε την fgets πολύ καλύτερη
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.