Почему открытие файла в c ++ с режимом ввода, вывода, добавления дает ошибку?

0
#include <iostream>
#include <fstream>

int main()
{
    using namespace std;

    /* Open a file and read it*/

    ofstream file_obj;

    file_obj.open("file1.txt",ios::in| ios::out | ios::app);

    if( file_obj.is_open() )
    {
       printf("\n File opened successfully ");
    }
    else
    {
       printf("\n Error occured in opening the file");
    }

    return 0;
 }

Он дает результат

Ошибка при открытии файла.

Но когда я удаляю ios: в своем рабочем состоянии.

Почему эта комбинация невозможна?

  • 1
    Нет, это недопустимая комбинация (даже для fstream ). Файл может быть открыт для чтения XOR для добавления, но не для обоих. Просто откройте fstream (потому что ofstream это только выход) для in и out и перейти к концу файла.
  • 0
    @ Cyber Но для меня ios: in и ios: out работали нормально.
Показать ещё 7 комментариев
Теги:
file
ofstream

1 ответ

0

Класс ofstream предназначен только для вывода (записи в файлы) - следовательно, "o". Вместо этого используйте fstream - это позволяет вводить и выводить.

  • 2
    И этот ответ и комментарий неверны.
  • 0
    ios::in и ios::app не являются допустимой комбинацией даже для fstream (в C ++ 98 это разрешено в C ++ 11).
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню