01/10/2018, 09:13
Cách đọc file bằng fstream bỏ qua dấu cách
ngữ cảnh: ta có 1 file với 2 cột data như hình.
123 222225555 222 22555555 1.1 445666 122 235.6
file sau chỉ đọc theo hàng. làm sao để tách 2 thần phần của 1 dòng trong mổi lần đọc.
Bài liên quan
Mỗi dòng hai con số thì đọc như bt hay đọc, ko cần phân giải
Cứ cout mà đọc bình thường, gặp khoảng trắng hoặc dấu xuống dòng là cout tự dừng, gọi cout tiếp thì nó đọc giá trị tiếp.
nó đọc nguyên cả hàng luôn. mình muốn mổi lần đọc 1 số thôi
fileinput >> temp;
hoặc : getline(fileinput, temp, " ");
Không được nhé bạn. sai cú pháp
Bạn nói trừu tượng quá. cho mình xem code bạn đi
Code gợi ý:
if (fileInput.good() == true)
code này là gì đây…
nguyên cái đống này viết 1 dòng là đủ rồi:
Bạn cho mình cái tài liệu chỉ ra tại sao làm được như vậy được không
mấy cái này là trick thôi, đọc code người khác nhiều thì thấy rồi chôm về làm của mình
vd std::cin >> … thì trả về cin, nhưng bản thân cin nó cũng có thể cast (implicit) thành bool true nếu nó còn đọc tiếp được, hoặc false nếu trước đó đọc thất bại, vậy nên có thể để
cin >> n
vô làm điều kiện dừng vòng lặp đọc số:while (cin >> n) s += n;
hiểu là khi nào còn đọc n được từ cin thì làm cái gì đó với n.ở đây mất công tạo 1 biến tạm thời input làm main mất đi 1 tên biến input, uổng, có thể bỏ vô trong vòng for khi khởi tạo, kết thúc vòng for thì nó cũng biến mất, rất phù hợp:
for (double n; cin >> n; ) s += n;
nếu phần thân của for chỉ có 1 dòng thì bỏ nó vào phần thứ 3 của vòng for luôn, hoặc cứ để nó ở trong thân vòng for, tùy sở thích thôi
for (double n; cin >> n; s += n);
Cám ơn bạn, hóa ra cục ifstream (và các loại stream khác) đều đã được overload ép kiểu bool đầy đủ