Khám phá
Trả lời
Hỏi
Đăng nhập

Nhập xuất trong C++

Khi đọc file thì mình cần dùng:

ifstream fi;
fi.open("DATA.INP");
int a;
fi>>a;

Có cách nào để chuyển chế độ nhập chuẩn thành chế độ nhập file không, nghĩa là mình dùng trực tiếp cin>>a; thì nó đọc luôn từ file mà không phải từ bàn phím. Trong Pascal thì mình dùng Assign(input,"DATA.INP"); reset(input); thì có thể dùng lệnh read để đọc luôn.

  1. Bạn sẽ nhìn thấy những mũi tên trong mỗi trang câu hỏi. Chúng cho phép bạn bỏ phiếu thuận / bỏ phiếu chống theo sự liên quan của các câu hỏi / trả lời.
  2. Chỉnh sửa câu hỏi của bạn / câu trả lời nếu bạn muốn thay đổi hoặc cập nhật nó.
  3. Nếu bạn không hiểu điều gì đó về câu hỏi, để lại nhận xét hỏi. Những vùng cho câu trả lời chỉ được sử dụng cho câu trả lời.
  4. Nếu tác giả của một câu hỏi đánh dấu một câu trả lời như giải pháp, nhãn hiệu này sẽ được hiển thị.
  5. Nhấn vào đây để xem thêm chi tiết về những hoạt động của hệ thống!

2 trả lời

  • Cách của mình có lẽ sẽ không đáp ứng yêu cầu của bạn, nhưng bạn cũng nên xem xét khả năng nó sẽ giúp bạn giải quyết được vấn đề. Thay vì dùng cin để đọc file, mình tạo một biến mới. Nếu đọc được từ file thì đọc, nếu không có thì sẽ dùng cin.

    #include <iostream>
    #include <fstream>
    
    int main(int argc, char **argv)
    {
        std::ifstream f;
        if (argc >= 2) {
            f.open(argv[1]);
        }
        std::istream &in = (argc >= 2) ? f : std::cin;
    
        // use in here
    }
  • Cách dùng cin trực tiếp thay cho ifstream:

    #include <iostream>
    #include <fstream>
    #include <string>
    
    int main()
    {
        std::ifstream in("in.txt");
        std::cin.rdbuf(in.rdbuf()); //redirect std::cin to in.txt!
        int a;
        cin >> a;
    }

    Nguồn

Không phải là câu trả lời bạn đang tìm kiếm? Tìm kiếm câu hỏi khác với các thẻ c io hoặc hỏi câu hỏi mới.