01/10/2018, 01:14
Mọi người cho mình hỏi về hàm (ifstream) trong c++
tại sao mình đọc đến ký tự space trong file thì nó lại dừng lại
ví dụ: ifstream file; string s;
file >> s;
thanks trước ạ !
Bài liên quan
Đọc một dòng:
Đọc từng kí tự rồi đưa vào chuỗi:
Hay đọc từng dòng rồi đưa vào chuỗi:
anh ơi vậy có hàm nào đọc cả file luôn không ???
hay chỉ có đọc từng dòng or từng chữ cái thôi …
Thường người ta dùng buffer bạn chứ ko đọc cả file vào 1 lúc. Với lại kích cỡ file đó tính bằng GB thì thua do đọc xong ghi lại lâu lắm, nếu chuyển qua đọc binary và bạn có cấu trúc file thì bạn thao tác raw được trên từng byte.
Thì bạn đọc từng dòng hoặc từng kí tự thì dần dần sẽ đọc hết file mà , theo mình biết thì không có hàm đó, bạn có thể tự viết được mà
Đọc được file dung lượng nhỏ thôi bạn
Cái dòng
file >> s;
nó giống như hàmscanf
haystd::cin
đó, không thể đọc được ký tự khoảng trắng, phải dùng hàmgets
haystd::getline()
.đừng xài eof().
std::getline
trả về chính stream mà nó đọc, mà stream này có thể hiểu là bool, false đồng nghĩa với hết đọc stream đó được.đọc từng từ, xử lý từng từ:
đọc từng ký tự, xử lý từng ký tự
còn muốn đọc hết nội dung của 1 file thì cũng đọc từ từ từng ký tự một, nhưng đừng xài
operator+=
của string chậm lắm. Có cách xài istreambuf_iterator:Cảm ơn anh đã chỉ giáo