Hỏi Về Câu Lệnh Fflush(Stdin) Trong C Onsole Trong C? Hàm Fflush(Stdin) Dùng Để Làm Gì

#include using namespace std;int main(int argc, char **argv){int soA, soB, tong;binladen:cout > soA >> soB;tong = soA + soB;cout > c;if (c == “t”|| c==”T”){goto binladen;}return 0;}

Trong bài em đâu có fflush(stdin) đâu? Cái fflush(stdin) đúng là để xóa bộ đệm. Khi em nhập vào thì bao nhiêu ký tự cũng chui vào bộ đệm cho tới khi bộ đệm tràn.

You watching: Hỏi về câu lệnh fflush(stdin) trong c

Giả dụ em muốn nhập a b c vào. Nhưng em chỉ muốn lấy a và b

Bạn đang đọc: Hỏi Về Câu Lệnh Fflush(Stdin) Trong C Onsole Trong C? Hàm Fflush(Stdin) Dùng Để Làm Gì

# include # include int main ( ) { int a, b = 0, c ; std :: cin >> a ; fflush ( stdin ) ; std :: cin >> c ; std :: cout Bây giờ anh nhập vào như sau1 23 thì tác dụng anh nhận được là103L ý do là fflush ( stdin ) đã bỏ đi số 2 .Vậy dùng fflush ( stdin ) làm gì ?Trong 1 số ít trường hợp, nhất là khi nhập chuỗi, thì stdin ( tức là standard input nhận vào từ bàn phím ) nhận thừa một số ít ký tự. Ví dụ dấu enter xuống hàng .Ký tự enter nếu không được giải quyết và xử lý bằng fflush ( stdin ) thì sẽ ngay lập tực bị nhập vào chuỗi tiếp theo. Dẫn đến tác dụng cho chuỗi tiếp theo bị lỗi. Thường là chuỗi thứ 2 sẽ chỉ chứa một dấu enter .Em hoàn toàn có thể bỏ fflush ( stdin ) ở ví dụ trên, và nhập lại tựa như như ví dụ trên sẽ thấy hiệu quả ngay.
10 Likes
Bài tập về nhập xuất chuỗi. mọi người sửa lỗi sai giúp m
Honey_moon (Thực tế khắc nghiệt) November 24, 2014, 2:28pm #3
10 LikesBài tập về nhập xuất chuỗi. mọi người sửa lỗi sai giúp mHoney_moon ( Thực tế khắc nghiệt ) November 24, năm trước, 2 : 28 pm # 3ý anh là ví dụ e nhập :1 2 enterthì đặt fflush ( stdin ) ở dưới cin sẽ vô hiệu ký tự cuối đúng k a ?
1 Like
minhdiem (Onethingisforever!) November 24, 2014, 2:32pm #4
1 Likeminhdiem ( Onethingisforever ! ) November 24, năm trước, 2 : 32 pm # 4hehee đúng cái em đang cần đây***
1 Like
Honey_moon (Thực tế khắc nghiệt) November 24, 2014, 2:36pm #5
1 LikeHoney_moon ( Thực tế khắc nghiệt ) November 24, năm trước, 2 : 36 pm # 5# include using namespace std ; int main ( int argc, char * * argv ) { int n ; nhaplain : cout > n ; while ( ncái này nhập lại cũng đc*
1 Like
ltd (Lê Trần Đạt) November 24, 2014, 3:29pm #6
1 Likeltd ( Lê Trần Đạt ) November 24, năm trước, 3 : 29 pm # 6

Không phải em, stdin có vào thì cũng có ra. Vào là lúc mình nhập số vào, ra là lúc mình cin.

See more: Top 6 Phần Mềm In Ra File Pdf Tốt Nhất, Top 5 Phần Mềm In File Pdf Tốt Nhất

giả dụ như mình nhập vào 1 2 nhưng mình chỉ cin một lần. thì khi đó stdin vẫn còn 1 số ít, là số 2 .Có lẽ anh sẽ kéo hết toàn bộ những bài này sang topic khác để bàn luận cho dễ.
2 Likes
Honey_moon (Thực tế khắc nghiệt) November 24, 2014, 3:30pm #7
2 LikesHoney_moon ( Thực tế khắc nghiệt ) November 24, năm trước, 3 : 30 pm # 7ok e hiểu r ! tại e chưa code trên máy ! bt k xài ! tks a !
ltd (Lê Trần Đạt) November 25, 2014, 9:24am #8
ltd ( Lê Trần Đạt ) November 25, năm trước, 9 : 24 am # 8Thêm một ví dụ nữa nhé. Bài này tiềm năng là nhập chữ g thì nhu yếu nhập lại .Code thì như thế này, nhưng khi nhập g tới lần thứ 2 thì không được nữa. Tại sao ?

#include int main(){ char x;nhaplai: printf(“\n\n\t\t *A*”); printf(“\n\n\t\t *B*”); printf(“nhap gia tri “); scanf(“%c”, &x); if(x ==”g”) { goto nhaplai; } getchar();}
Honey_moon (Thực tế khắc nghiệt) November 25, 2014, 3:07pm #9

*
printf(“\n\n\t\t A”);printf(“\n\n\t\t B”);

ltd:

a đạt chơi trò j đây > ?
1 Like
ltd (Lê Trần Đạt) November 25, 2014, 3:08pm #10
cái này là bắt nạt nhỏ à nha1 Likeltd ( Lê Trần Đạt ) November 25, năm trước, 3 : 08 pm # 10Haha, cái này là anh copy từ facebook, người ta viết sao anh viết thế thôi ^ ^
Honey_moon (Thực tế khắc nghiệt) November 25, 2014, 3:10pm #11
Honey_moon ( Thực tế khắc nghiệt ) November 25, năm trước, 3 : 10 pm # 11a đạt lý giải e 2 dòng print đó coi ! ngao ngán quá ! chứ code bỏ 2 dòng đó đi thì bt e vẫn làm
ltd (Lê Trần Đạt) November 25, 2014, 3:13pm #12
ltd ( Lê Trần Đạt ) November 25, năm trước, 3 : 13 pm # 12

\n là xuống hàng\t là tabcó nghĩa là xuống hàng xuống hàng tab tab đấy
Honey_moon

Honey_moon (Thực tế khắc nghiệt) November 25, 2014, 3:15pm #13
Honey_moon ( Thực tế khắc nghiệt ) November 25, năm trước, 3 : 15 pm # 13ý e là A vs B chứ này e bik r*
1 Like
ltd (Lê Trần Đạt) November 25, 2014, 3:16pm #14
! đố ác nhé ! chẳng lẽ bắt e lên google ông anh chơi kỳ ! lớn rồi còn ham khoe khoang1 Likeltd ( Lê Trần Đạt ) November 25, năm trước, 3 : 16 pm # 14À, A với B thì là chữ thông thường thôi. Chắc người làm bài đó họ viết ví dụ thôi. hehehe
Honey_moon (Thực tế khắc nghiệt) November 25, 2014, 3:52pm #15
Honey_moon ( Thực tế khắc nghiệt ) November 25, năm trước, 3 : 52 pm # 15e vấn đáp theo suy đoán của e ! a khai báo kiểu char ! sau đó a tới địa chỉ với và cho nên vì thế nó đã xác lập địa chỉ trên thanh ram rồi cho nên vì thế ko thể nhập lại 1 biến nữa vs cùng địa chỉ cấp phép
1 Like
ltd (Lê Trần Đạt) November 25, 2014, 3:54pm #16
1 Likeltd ( Lê Trần Đạt ) November 25, năm trước, 3 : 54 pm # 16

Nó có liên quan đến fflush đó
Honey_moon, vì cái hàm scanf(“%c”, &x); bị dính enter. Nên chỉ nhập g được 1 lần, lần sau enter chui vào x, dẫn đến thoát chương trình.

Cách xử lý là thêm fflush ( stdin ) vào sau scanf

#include int main(){ char x;nhaplai: printf(“\n\n\t\t *A*”); printf(“\n\n\t\t *B*”); printf(“nhap gia tri “); scanf(“%c”, &x); fflush(stdin); if(x ==”g”) { goto nhaplai; } getchar();}Tuy nhiên dây cũng không phải là cách tốt nhất. Cách tốt nhất là dùng getchar() để nhập 1 ký tự.

See more: Download Phần Mềm Học Tập Tin Học Thcs, Phần Mềm Luyện Gõ Phím Nhanh Typing Test

# include int main ( ) { char x ; nhaplai : printf ( ” \ n \ n \ t \ t * A * ” ) ; printf ( ” \ n \ n \ t \ t * B * ” ) ; printf ( ” nhap gia tri ” ) ; x = getchar ( ) ; if ( x = = ” g ” ) { goto nhaplai ; } getchar ( ) ; } Như thế này mình không cần fflush ( stdin )
Code không cho nhập chuỗi
Honey_moon (Thực tế khắc nghiệt) November 25, 2014, 3:58pm #17
Code không cho nhập chuỗiHoney_moon ( Thực tế khắc nghiệt ) November 25, năm trước, 3 : 58 pm # 17ý anh là dùng do while rồi getchar thôi ! đk là ! = g ; có clip a hướng dẫn nhập trong mảng ký tự rồi ! thế e cứ tưởng cao siêu lắm ! làm nghĩ mún nát óc ! hại não về đêm.
1 Like
Xuan_Tung_Nguyen (Xuân Tùng Nguyễn) May 15, 2016, 2:09pm #18
1 LikeXuan_Tung_Nguyen ( Xuân Tùng Nguyễn ) May 15, năm nay, 2 : 09 pm # 18Nếu đặt getchar ( ) ở cuối thì chưa kịp thi hành đã bị goto nhập lại rồi. getchar ( ) phải đặt ngay dưới x = getchar ( )
phamphuc6122002 (Phúc) July 22, 2016, 2:45pm #19
phamphuc6122002 ( Phúc ) July 22, năm nay, 2 : 45 pm # 19Anh Đạt cho em hỏi / t dùng làm gì ạ ? Hi vọng em lấy mấy topic cũ ra không làm phiền mọi người ạ !
tankhoa0000 (Nguyễn Tấn Khoa) July 22, 2016, 2:53pm #20

tankhoa0000 (Nguyễn Tấn Khoa) July 22, 2016, 2:53pm #20

\ t là ký tự tab ngang. Nó sẽ cách ra giống như là 1 khoảng chừng trắng bự vậy đó .*
1 Like
next page →
Home Categories FAQ/Guidelines Terms of Service Privacy Policy
1 Likenext page → Home Categories FAQ / Guidelines Terms of Service Privacy PolicyPowered by Discourse, best viewed with JavaScript enabled

5/5 - (13 votes)
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments