Консультация № 189000
21.03.2016, 17:40
0.00 руб.
0 3 1
Здравствуйте! Прошу помощи в следующем вопросе:
Мне нужно добавить букву в начало файла, вот я сделал функцию,но у меня пишет ошибку в этой строке:fout << c; можете объяснить, почему так и исправить?

void AddBegin(int n)//добавление буквы в начало файла
{
char c;
ifstream fout("artem55555p.txt", ios::app);
cout << "Введите символ в начало файла:";
cout << endl;
fout.seekg(0);
cin >> c;
fout << c;
fout.close();
}

Обсуждение

давно
Профессор
230118
3054
21.03.2016, 17:53
общий
Флаг ios::app означает, что добавление должно происходить в конец файла. Чтобы решить задачу, нужно создать новый файл, записать в него ваш символ, а потом содержимое старого файла.
давно
Посетитель
399158
228
21.03.2016, 18:15
общий
Да. я так сделал и все получилось, просто хотел как-то через указатель, но не вышло)
давно
Старший Модератор
17042
808
22.03.2016, 13:08
общий
это ответ
Здравствуйте, Посетитель - 399158!

Удобнее всего выполнить задачу с использованием объектов класса string и stringstream. Подробности в коде:

Код:

#include <iostream>
#include <fstream>
#include <sstream>
#include <string>
using namespace std;
//------------------------------------------------------------
void AddBegin() // добавление буквы в начало файла
{
// Буфер для сохранения символов
stringstream Content;

// Открываем файл для чтения
ifstream FileIn("artem55555p.txt", ios::in);

// Сохраняем его содержимое в буфер
Content << FileIn.rdbuf();
FileIn.close();

string sSymbol;
cout << "Введите символ для записи в начало файла: ";
cin >> sSymbol;

// Сохраняем содержимое буфера в строковую переменную
string sContent = Content.str();

// Записываем символ, введённый с клавиатуры, в начало
// строки
sContent = sSymbol + sContent;

// Открываем файл на запись...
ofstream FileOut("artem55555p.txt");
// и заменяем его содержимое новым
FileOut << sContent;
FileOut.close();
}
//------------------------------------------------------------
int main()
{
AddBegin();
return 0;
}

Об авторе:
We have but faith: we cannot know;
For knowledge is of things we see;
And yet we trust it comes from thee,
A beam in darkness: let it grow.
-----
https://www.linkedin.com/in/andreynkuznetsov
https://www.researchgate.net/profile/Andrey_Kuznetsov11
http://www.researcherid.com/rid/K-8824-2014
Форма ответа