Почему этот файл не записывается при определенных условиях? - PullRequest
0 голосов
/ 13 июля 2020

Итак, я просматривал разные вопросы и ответы на этом сайте, и один из них упомянул способ проверки того, запускалась ли программа более одного раза. Я решил попробовать, но столкнулся с ошибкой. 1004 * или нет:

#include <iostream>
#include <fstream>

using namespace std;

int main()
{
    fstream file("check.txt", ios::in | ios::out);
    if(!file){
        cerr << "no file" << endl;
        return 1;
    }

    char ch;
    file >> ch;
    if(ch == 'x'){
        cout << "result one" << endl;
    }
    else {
        cout << "result two" << endl;
        file << 'x';
    }
    return 0;
}

Я не совсем уверен, что здесь не так.

1 Ответ

0 голосов
/ 13 июля 2020

В вашем коде есть две основные проблемы:

file.fail()

Это условие, которое вы должны проверять not! File. Во-вторых, нет ввода символов для файла, полученного с использованием оператора <<, пожалуйста, прочтите все доступные перегрузки функций для оператора << по адресу: <a href="http://www.cplusplus.com/reference/istream/istream/operator%3E%3E/" rel="nofollow noreferrer">http://www.cplusplus.com/reference/istream/istream/operator%3E%3E/.

...