Класс для чтения из файла, записи в файл
Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.
Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.
Появился вопрос по с++. Создал класс, который может читать и записывать в файл.
Функция wrire имеет две реализации. Первая записывает в файл, вторая если мы в нее передаем 2 параметра, второй параметр является буквой А, что мы открываем файле в режиме дозаписи.
И тут получаем проблемы, дело в том, что файл не открывается. Конечно, возможно объяснил как-то непонятно.
Решил, чтобы каждая функция, включая конструктор с параметрами, открывала и закрывала файл. Но файл открывается и закрывается в конструктор класса только один раз, в функциях не открывается, выдает ошибку открытия файла. Вот что пишет в консоли
open
close
error
error
Помогите пожалуйста, разобраться.
Надеюсь код файла более наглядно, донесет суть вопроса.
include<iostream>
include<string>
include<ctime>
include<fstream>
include<cstdio>
include<memory>
include<cmath>
include<windows.h>
using namespace std;
class fille {
public: string path;
fille() { cout << «erorr not path» << endl; }
fille(string path) {
fstream f; {
f.open(path, fstream::in | fstream::out);
if (f.is_open()) {
cout << «open» << endl;
}
}
f.close();
cout << «close » << endl;
}
void write(string value) {
fstream f1;
{f1.open(path, fstream::in | fstream::out);
if (f1.is_open()) { // открываем файл для добавление, получаем ошибку.
cout << «write» << endl;
f1 << value;
}
else {
cout << «error» << endl;
}
}
f1.close();
}
void write(string value, string value2) {
if (value2 == «a») {
fstream f2;
f2.open(path, fstream::in | fstream::out | fstream::app);
if (f2.is_open()) { // открываем файл для добавление, получаем ошибку.
cout << «add» << endl;
f2 << value;
}
else {
cout << «error» << endl;
}
f2.close();
}
};
~fille() { cout << «file close \n»; } // деструктор
};
int main(int args, char* argv[])
{ setlocale(LC_ALL, «ru»);
fille f(«D:\cppstudio.txt»); // Вызывается конструктор.
f.write(«первый»);
f.write(«второй», «a»);
return 0;
system(«pause»);
}