Почему так происходит и где ошибка?

Пишу менеджер паролей на C++. У него есть файл настроек, в котором изначально записан 0, означающий, что человек ещё не заходил в хранилище паролей.
Здесь
conf.open("config.txt");
	conf >> con;
	conf.close();
	if (con == 0){
		firstlaunch();
	}


происходт проверка на первый вход.

Здесь
conf.open("config.txt", ios_base::out);
	conf << 1 << endl;
	conf.close();


0 заменяется на 1, мол человек уже зашел. Но даже если в этом файле 1,
он запускает функцию первого запуска:
вот
4fa4ed529bda4a3ca03ccab614c62eaf.PNG
.

UPD: такое случается иногда, хотя кусочек кода с проверкой я не трогаю.
Подскажите, где ошибка?

доп. вопрос
при таких инклюдах
#include "stdafx.h"
#include <iostream>
#include <time.h>
#include <fstream>
#include <string>
#include <Windows.h>


операторы cout, cin, system становятся ошибками
так
1a89e6dbe2444cbab03ed1e3c06598d8.PNG
  • Вопрос задан
  • 2568 просмотров
Решения вопроса 1
bogolt
@bogolt
Так, теперь попробуйте улучшить ваш вопрос, так чтобы на него можно было ответить.
1. Скриншот запущенного приложения это прекрасно, но непонятно зачем он нужен.
2. Скриншот куска ошибок - ничего не понятно какие именно там ошибки. Разберитесь как из студии скопировать лог сборки и вытащите эти сообщения оттуда.
3. После чтения из файла - проверьте значение переменной con и выведете его на экран, чтобы убедится что именно из файла читается не то число.
Если там не то число - то проверьте тип этой переменной - может вы записали туда char "1" а читаете его уже как int или наоборот.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы