Hàm Fflush(stdin) Dùng để Làm Gì? - Programming - Dạy Nhau Học Trang chủ » Fflush Trong C Là Gì » Hàm Fflush(stdin) Dùng để Làm Gì? - Programming - Dạy Nhau Học Có thể bạn quan tâm Ff Lưu Trung Tv Ffl Và Ffl Là Gì Ffl Và Sfl Ff Mãng Xà Ff Mãng Xà Apk Hàm fflush(stdin) dùng để làm gì? programming c++ Honey_moon (Thực tế khắc nghiệt) March 3, 2015, 2:08pm #1 #include <iostream> using namespace std; int main(int argc, char **argv){ int soA, soB, tong; binladen:cout << "nhap 2 so a, b de tinh tong" << endl; cin >> soA >> soB; tong = soA + soB; cout << "ket qua tong a+b = " << tong << endl; char c = getchar(); cout << "neu mun tiep tuc nhan phim 't' + enter, thoat nhan phim bat ky" << endl; cin >> c; if (c == 't'|| c=='T') { goto binladen; } return 0; } @ltd a Đạt cái lệnh fflush(stdin) dùng để xoá ký tự đệm k mong muốn sao a? 2 Likes Vì sao mỗi lần nhập vào một chuỗi kí tự lại phải dùng lệnh fflush(stdin)? Code quản lý thí sinh không nhập được tên thí sinh Bài tập c++ (15 char) Bài tập với câu lệnh rẽ nhánh: Xét 1 tam giác và kiểm tra là tam giác gì Code struct quản lý danh sách sinh viên bị sai Bài tập với câu lệnh rẽ nhánh: Xét 1 tam giác và kiểm tra là tam giác gì ltd (Lê Trần Đạt) November 24, 2014, 2:24pm #2 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. Giả dụ em muốn nhập a b c vào. Nhưng em chỉ muốn lấy a và b #include <iostream> #include <stdio.h> int main() { int a,b=0,c; std::cin >> a; fflush(stdin); std::cin >> c; std::cout << a << b << c; return 0; } Bây giờ anh nhập vào như sau 1 2<enter> 3 thì kết quả anh nhận được là 103 Lý do là fflush(stdin) đã bỏ đi số 2. Vậy dùng fflush(stdin) làm gì? Trong một số 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ố ký tự. Ví dụ dấu enter xuống hàng. Ký tự enter nếu không được 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 kết quả 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 có thể bỏ fflush(stdin) ở ví dụ trên, và nhập lại tương tự như ví dụ trên sẽ thấy kết quả ngay. 13 Likes Nhờ sửa lỗi sai giúp code bài tập về nhập xuất chuỗi Honey_moon (Thực tế khắc nghiệt) November 24, 2014, 2:28pm #3 ý anh là ví dụ e nhập : 1 2 enter thì đặt fflush(stdin) ở dưới cin sẽ loại bỏ ký tự cuối đúng k a? 1 Like minhdiem (Onethingisforever!) November 24, 2014, 2:32pm #4 hehee đúng cái em đang cần đây 2 Likes Honey_moon (Thực tế khắc nghiệt) November 24, 2014, 2:36pm #5 #include <iostream> using namespace std; int main(int argc, char **argv){ int n; nhaplain:cout << "nhap n" << endl; cin >> n; while (n<=0) { cout << "moi ban nhap lai n!"; goto nhaplain; } return 0; } cái này nhập lại cũng đc 1 Like ltd (Lê Trần Đạt) November 24, 2014, 3:29pm #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. giả dụ như mình nhập vào 1 2<enter> nhưng mình chỉ cin một lần. thì khi đó stdin vẫn còn một số, là số 2. Có lẽ anh sẽ kéo hết tất cả những bài này sang topic khác để thảo luận cho dễ. 2 Likes Honey_moon (Thực tế khắc nghiệt) November 24, 2014, 3:30pm #7 ok 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 Thêm một ví dụ nữa nhé. Bài này mục tiêu là nhập chữ g thì yêu cầ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 <stdio.h> 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 ltd: printf("\n\n\t\t A"); printf("\n\n\t\t B"); a đạt chơi trò j đây>? cái này là bắt nạt nhỏ à nha 1 Like ltd (Lê Trần Đạt) November 25, 2014, 3:08pm #10 Haha, 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 a đạt giải thích 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 \n là xuống hàng \t là tab có 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 ý e là A vs B chứ này e bik r ! đố ác nhé! chẳng lẽ bắt e lên google ông anh chơi kỳ! lớn rồi còn ham khoe khoang 1 Like ltd (Lê Trần Đạt) November 25, 2014, 3:16pm #14 À, A với B thì là chữ bình 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 e trả lời theo suy đoán của e! a khai báo kiểu char! sau đó a tới địa chỉ với & vì thế nó đã xác định địa chỉ trên thanh ram rồi cho nên ko thể nhập lại 1 biến nữa vs cùng địa chỉ cấp phát 1 Like ltd (Lê Trần Đạt) November 25, 2014, 3:54pm #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 giải quyết là thêm fflush(stdin) vào sau scanf #include <stdio.h> 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ự. #include <stdio.h> 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 ý 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 Nế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 Anh Đạ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 \t là ký tự tab ngang. Nó sẽ cách ra giống như là 1 khoảng trắng bự vậy đó. 1 Like next page → DayNhauHoc's Discord Học C++ Free? Click Blog Dạy Nhau Học Tự Học Lập Trình 83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao? Từ khóa » Fflush Trong C Là Gì Hàm Fflush() Trong C Hỏi Về Câu Lệnh Fflush(stdin) Trong C - Programming Cách Dùng Lệnh Fflush(stdin)? Lệnh Fflush(stdin) Có Tác Dụng Gì? Hàm Fflush() Trong C | Thư Viện C Chuẩn Hỏi Về Câu Lệnh Fflush(stdin) Trong C Hàm Fflush() Trong C - Thiết Kế Website Việc Sử Dụng Fflush (stdin) Trong Lập Trình C Là Gì Hàm Fflush() Trong Thư Viện C Chuẩn - Hoclaptrinh Hỏi Về Hàm Fflush(stdin) Trong C Fflush (stdin) Làm Gì Trong Lập Trình C? Việc Sử Dụng Fflush (stdin) Trong Lập Trình C Là Gì Lệnh Fflush(stdin) Dùng để Làm Gì? - Trắc Nghiệm Online Hãy Dừng Việc Sử Dụng Fflush(stdin) để Xóa Dòng Nhập Hàm Fflush(stdin) Không Thể Dừng Màn Hình Console Trong C?