ΠΛΗΡΟΦΟΡΙΕΣ: rewind(stdin) απαλείφει Buffer πληκτρολογίου

Αποποίηση ευθυνών για περιεχόμενο της Γνωσιακής βάσης που έχει αποσυρθεί

Αυτό το άρθρο αφορά προϊόντα για τα οποία η Microsoft δεν παρέχει πλέον υποστήριξη. Συνεπώς, το παρόν άρθρο παρέχεται "ως έχει" και δεν θα ενημερώνεται πλέον.

Σύνοψη


Για να απαλείψετε το buffer πληκτρολογίου στο Microsoft C χρησιμοποιήστε τη συνάρτηση rewind() με τη ροή STDIN, που είναι συσχετισμένο με το πληκτρολόγιο, από προεπιλογή. Η συνάρτηση fflush() πραγματοποιεί εκκαθάριση των buffer που χρησιμοποιούν τα προγράμματα C για επίπεδο ροής εισόδου/εξόδου. Δεν καταργεί το buffer της συσκευής. Το ακόλουθο είναι ένα παράδειγμα που δείχνει τι συμβαίνει όταν το buffer του πληκτρολογίου δεν είναι επιλεγμένο, και στη συνέχεια, τον τρόπο για να καταργήσετε την επιλογή του:

Δείγμα κώδικα

/* Compile options needed: none*/ 

#include <stdio.h>

void main(void)
{
int ch ;

puts( "Input two or more chars. One is read now." );
ch = getchar();
putchar( ch );
putchar( '\n' );

puts( "The next char is taken from stdin." );
ch = getchar( );
putchar( ch );
putchar( '\n' );

rewind( stdin );
puts( "Input two or more chars. One is read now." );
ch = getchar();
putchar( ch );
putchar( '\n' );

rewind( stdin );
puts( "You must enter another char because of the rewind(stdin)" );
ch = getchar( );
putchar( ch );
putchar( '\n' );
}
Ιδιότητες

Αναγνωριστικό άρθρου: 41159 - Τελευταία αναθεώρηση: 17 Ιαν 2017 - Αναθεώρηση: 1

Σχόλια