01/10/2018, 10:04

Làm sao để nhập chuỗi vào pointer

http://codepad.org/36Loy3TM
đây là code. em đã thử debug thử và kết quả là hàm gets_s của em nó ko lấy chuỗi vào mà chạy tiếp vòng lặp . vậy phải sữ dụng câu lệnh nào v a/c

Bơm Vá Xe Tăng viết 12:14 ngày 01/10/2018

Nếu code bằng C thì dùng gets(biến cần lấy), và xuất ra bằng puts(biến cần xuất). vậy đi cho dễ

Nguyễn Khanh viết 12:15 ngày 01/10/2018

em dùng biến gets đó bác. mà ko được, từ lúc học tới h phần chuỗi em ko hiểu lắm. cũng chỉ thấy sao làm v thôi chứ không hiểu bản chất

Nguyễn Khanh viết 12:11 ngày 01/10/2018

@ltd: a đạt ơi giúp em với ạ

*grab popcorn* viết 12:16 ngày 01/10/2018

THay fflush, _flushall bằng cái này

int c;
while ((c = getchar()) != '\n' && c != EOF);

Điều tra thử thì fflush và _flushall đề gọi về 1 hàm. -> Đoán là _flushall có thể là hàm gọi nhiều fflush ở trong.

Lưu ý tiếp:
ffush có thể hoạt động với stdin với vs2013 trở về trc (supprise! ) với document ghi như sau:

The fflush function flushes a stream. If the file associated with stream is open for output, fflush writes to that file the contents of the buffer associated with the stream. If the stream is open for input, fflush clears the contents of the buffer.

Tuy nhiên lên vs2015 trở về sau thì được sửa thành hoạt động với các mode của stream chứ không phải stream nữa

The fflush function flushes the stream stream. If the stream was opened in write mode, or it was opened in update mode and the last operation was a write, the contents of the stream buffer are written to the underlying file or device and the buffer is discarded. If the stream was opened in read mode, or if the stream has no buffer, the call to fflush has no effect, and any buffer is retained.

Theo mình biết, chương trình đọc stdin chỉ với mode read còn Write data vào stdin do HDH đảm nhiệm. Nên vì ở mode read -> fflush không hoạt động. -> _flushall không hoạt động -> Các ký tự xuống hàng vẫn còn nằm trong stdin stream.

Nguyễn Khanh viết 12:09 ngày 01/10/2018

cám ơn bác ạ. tiện thể cho em cái nguồn(tiếng anh cũng được để e đọc)được ko ạ

*grab popcorn* viết 12:09 ngày 01/10/2018

_flushall https://msdn.microsoft.com/en-us/library/s9xk9ehd.aspx
fflush https://msdn.microsoft.com/en-us/library/9yky46tz.aspx

Ở trên cùng có ô Other Version, click vô chọn version khác.

Bài liên quan
0