ofstream, когда произойдет сбой вместо создания нового файла?

Я только начал читать о том, как открывать и редактировать файлы. при работе с ifstream, если файл не существует, он не будет создан.

в отношении приведенного ниже кода, когда условие (!outfile) будет ложным, как если бы файл не существовал, он будет просто создан конструктором, следовательно, всегда делая условие ложным.

int main() 
{
    ofstream outfile ("test1.txt");

    if (!outfile) 
    {
        cout << "cannot create file test1.txt" << endl; 
        return 1;
    }
    outfile << 10 << " " << 345.12 << endl;
    outfile << "This is a short text file";
    outfile.close();

    system("PAUSE");
    return 0;
}

1 ответ

Один из способов открытия ofstream может произойти сбой, если файл по указанному пути существует, но у вас нет разрешения на запись в него. Кроме того, если файл не существует, но у вас нет разрешения на создание файла по указанному пути, откройте ofstream также должен потерпеть неудачу.

Другой сбойной ситуацией может быть, если файлы не существуют, а базовое устройство не имеет достаточно свободного места / inode для его создания.

Другие вопросы по тегам