Εργαστήριο Τεχνολογίας Λογισμικού
+1 vote
140 views

Έχω δοκιμάσει να γράψω ένα πρόγραμμα, το οποίο θέλω να ελέγχει κάθε χαρακτήρα του input ξεχωριστά αν είναι '\n' και α) να τερματίζει το loop όταν βρει '\n' ή β) να αποθηκεύει τον χαρακτήρα σε έναν πίνακα εφόσον δεν είναι '\n' και να συνεχίζει, ενώ στην συνέχεια θέλω να τυπώνει τα στοιχεία του πίνακα.
Έχω αποπειραθεί να το γράψω με τον εξής τρόπο:

 i=0;
 do {a[i]=getchar();
         i = i+1; }
 while (a[i] != '\n');
 u=i;
 for(i=0; i<u; i++)
 {cout << a[i]; } ;

Ωστόσο, απαιτεί αρκετά enter για να τυπώσει το output. Τι μπορεί να φταίει για αυτό το bug και πώς μπορώ να το διορθώσω;

in progintro by (360 points)
retagged by | 140 views

1 Answer

+4 votes

Αυξανεις το i και μετα ελεγχεις τη θεση i του πινακα.
Δηλαδη για την 1η επαναληψη ξεκινας με i=0, δινεις τιμη στο a[0], αυξανεις σε i=1, ελεγχεις το a[1] στη συνθήκη του while.

Μια εύκολη διορθωση για παραδειγμα θα ηταν ως εξης:

i=-1;
do {i = i+1;
  a[i] = getchar();}
while (a[i] != '\n');
by (690 points)
0

Ωχ όντως.
Έγινε ευχαριστώ

301 questions

289 answers

288 comments

770 users