E mới học lập trình nên chưa bt cách đọc hết file mà ko bt số phần tử ạ, ai cao tay chỉ giáo với ạ :>>
Vd:
input:
455 654 35 77 987 123 867 45 365
E mới học lập trình nên chưa bt cách đọc hết file mà ko bt số phần tử ạ, ai cao tay chỉ giáo với ạ :>>
Vd:
input:
455 654 35 77 987 123 867 45 365
Từ khóa: istream eof
.
ko xài eof nha :V istream trong C++ có thể cast thành boolean, khi ko đọc được nữa thì nó sẽ được cast thành false
ví dụ có
std::ifstream ifs{"ten-file.txt"};
đọc và in từng phần tử ra:
for (int k; ifs >> k;) std::cout << k << " ";
đọc và lưu tất cả các phần tử vào mảng:
// cách 1
std::vector<int> v;
for (int k; ifs >> k;) v.push_back(k);
// cách 2 xài istream_iterator trong header <iterator>
std::vector<int> arr(std::istream_iterator<int>{ifs}, {});
còn nếu đọc toàn bộ nội dung của file từng kí tự một thì thay vì xài istream_iterator<char>
đi xài istreambuf_iterator<char>
nha :V
std::string fileContent(std::istreambuf_iterator<char>{ifs}, {});
cách xài istreambuf này có vẻ ko tối ưu nhất, trên SO có nhiều cách tối ưu hơn :V