Προς το περιεχόμενο

help me....c!!


absolut_user

Προτεινόμενες αναρτήσεις

fflush(stdin);

getchar();

return 0;

ayta ta tria sto telos enos programatos ti kanoun??

otan vazw mono to getchar(); to programa klinei amesws meta tin eisagwgi twn timwn...

an valw kai ta alla tote menei anoixto...

peite mou an mporeite ti kanoun..kai pote xrisimeuoun....tnx apo twra...!!!

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

fflush(stdin);

getchar();

return 0;

ayta ta tria sto telos enos programatos ti kanoun??

otan vazw mono to getchar(); to programa klinei amesws meta tin eisagwgi twn timwn...

an valw kai ta alla tote menei anoixto...

peite mou an mporeite ti kanoun..kai pote xrisimeuoun....tnx apo twra...!!!

 

 

 

 

Ρε φίλε απο που απο το ηράκλειο είσαι ?

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Το fflush(stdin) απο οσο ξερω ειναι επικινδυνη κληση, με την εννοια οτι το ορισμα της fflush πρεπει να ειναι *output* buffer και οχι *input* buffer, οπως το stdin. Η fflush "αδειαζει", κανει flush, τους buffers που χρησιμοποιει ο χρηστης για καποιο stream

Κανε man fflush για περισσοτερες πληροφοριες.

H getchar παιρνει ενα χαρακτηρα. Αν δεν εχει ορισμα, παιρνει ενα χαρακτηρα απο το stdin (πληκτρολογιο).

Κανε man getchar για περισσοτερες πληροφοριες.

Η return επιστρεφει τον ελεγχο στη συναρτηση που *καλεσε* τη συναρτηση που τρεχει αυτη τη στιγμη. Μπορει να επιστρεψει και καποιο αποτελεσμα, οπως το 0 (μαλλον τιποτα) στην προκειμενη περιπτωση.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Aυτές οι εντολές στο τέλος ενός προγράμματος χρησημεύουν στο να μην κάνει exit το πρόγραμμα απ'ευθείας και να περιμένει τον χρήστη να πατήσει enter.

 

H fflus(stdin) πετάει όλους τους χαρακτήρες που μπορεί να έχουν μείνει στον input buffer από προηγούμενες εισαγωγές από το πληκτρολόγιο.

Η getchar() διαβάζει έναν χαρακτήρα από το input (stdin). Αν κατά τη διάρκεια του προγράμματος έχεις εισάγει κάποια δεδομένα απο το πληκτρολόγιο,

τότε κάποιοι χαρακτήρες (όπως για πχ. το \n) είναι πιθανόν να έχουν μείνει στον input buffer.

Έτσι όταν η getchar() πηγαίνει στο τέλος να διαβάσει έναν χαρακτήρα τον βρίσκει έτοιμο και δεν περιμένει τον χρήστη να πατήσει enter.

 

Για τη return είναι όπως τα είπε ο eurander...

 

Τώρα έτσι που τα έγραψα δεν ξέρω τι κατάλαβες αλλά ελπίζω να βοήθησα λίγο.

 

@tolak: Το Ηράκλειο που κολάει???????????? (edit: Τώρα είδα πού κολάει :) )

 

@eurander: Δεν είναι και τόσο επικίνδυνη η κλίση της fflus αρκεί να καταλαβαίνεις πότε την χρησημοποιείς. Και συνήθως γίνεται σε τέτοιες

περιπτώσεις.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

fflush(stdin);

getchar();

return 0;

ayta ta tria sto telos enos programatos ti kanoun??

otan vazw mono to getchar(); to programa klinei amesws meta tin eisagwgi twn timwn...

an valw kai ta alla tote menei anoixto...

peite mou an mporeite ti kanoun..kai pote xrisimeuoun....tnx apo twra...!!!

 

Η εντολή fflush(stdin) προκαλεί undefined behaviour, δηλαδή μπορεί να κάνει αυτό που ανέφεραν οι προλαλήσαντες (να αδειάσει το input stream) αλλά μπορεί και να κάνει τον υπολογιστή σου να κολλήσει, ως εκ τούτου μην τη χρησιμοποιείς.

 

Ισοδύναμο αποτέλεσμα με αυτό που θέλεις μπορείς να το πετύχεις με την εξής συνάρτηση:

 

>
/* flush to end-of-line */
int flushln(FILE *f)
{
  int ch;

  while ('\n' != (ch = fgetc(f)) && (EOF != ch)) /* more */;
  return ch;
} /* flushln */

 

Για τα υπόλοιπα σε κάλυψαν οι προηγούμενοι νομίζω.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...

Χρησιμοποιούμε  cookies για να απολαμβάνεις το insomnia προσωποποιημένο στις ανάγκες σου αλλά και για την παροχή στοιχείων επισκεψιμότητας για να βελτιώσουμε την ποιότητα των υπηρεσιών μας