23.04.2019, 20:01 [+3 UTC]
в нашей команде: 3 563 чел. | участники онлайн: 4 (рекорд: 21)

:: РЕГИСТРАЦИЯ

задать вопрос

все разделы

правила

новости

участники

доска почёта

форум

блоги

поиск

статистика

наш журнал

наши встречи

наша галерея

отзывы о нас

поддержка

руководство

Версия системы:
7.74 (12.04.2019)
JS-v.1.33 | CSS-v.3.35

Общие новости:
09.03.2019, 10:08

Форум:
22.04.2019, 13:50

Последний вопрос:
23.04.2019, 17:27
Всего: 149360

Последний ответ:
23.04.2019, 19:21
Всего: 258238

Последняя рассылка:
23.04.2019, 19:45

Писем в очереди:
0

Мы в соцсетях:

Наша кнопка:

RFpro.ru - здесь вам помогут!

Отзывы о нас:
21.02.2010, 23:01 »
Бабич Илья Александрович
Спасибо за подсказку [вопрос № 176834, ответ № 259654]
09.10.2009, 21:13 »
Ramis
Спасибо вам большое, химико5! Чтоб я без вас делал! Очень сильно вам благодарен! [вопрос № 173079, ответ № 255219]
07.06.2013, 14:43 »
Александр Сергеевич
Спасибо!!! [вопрос № 187447, ответ № 272400]

РАЗДЕЛ • С / С++

Создание программ на языках C и C++.

[администратор рассылки: Андрей Кузнецов aka Dr_Andrew (Старший модератор)]

Лучшие эксперты в этом разделе

Зенченко Константин Николаевич
Статус: Старший модератор
Рейтинг: 394
Коцюрбенко Алексей Владимирович
Статус: Модератор
Рейтинг: 301
CradleA
Статус: Профессор
Рейтинг: 159

Перейти к консультации №:
 

Консультация онлайн # 189000
Раздел: • С / С++
Автор вопроса: Посетитель - 399158 (Посетитель)
Отправлена: 21.03.2016, 17:40
Поступило ответов: 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();
}

Состояние: Консультация закрыта

Ответ # 273512 от Андрей Кузнецов aka Dr_Andrew (Старший модератор)

Здравствуйте, Посетитель - 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;
}


Консультировал: Андрей Кузнецов aka Dr_Andrew (Старший модератор)
Дата отправки: 22.03.2016, 13:08

Рейтинг ответа:

0

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

Мини-форум консультации № 189000
Асмик Гаряка
Советник

ID: 230118

# 1

= общий = | 21.03.2016, 17:53 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

Флаг ios::app означает, что добавление должно происходить в конец файла. Чтобы решить задачу, нужно создать новый файл, записать в него ваш символ, а потом содержимое старого файла.

Посетитель - 399158
Посетитель

ID: 399158

# 2

= общий = | 21.03.2016, 18:15 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

Да. я так сделал и все получилось, просто хотел как-то через указатель, но не вышло)

 

Возможность оставлять сообщения в мини-форумах консультаций доступна только после входа в систему.
Воспользуйтесь кнопкой входа вверху страницы, если Вы зарегистрированы или пройдите простую процедуру регистрации на Портале.

Яндекс Rambler's Top100

главная страница | поддержка | задать вопрос

Время генерирования страницы: 0.16002 сек.

© 2001-2019, Портал RFPRO.RU, Россия
Калашников О.А.  |  Гладенюк А.Г.
Версия системы: 7.74 от 12.04.2019
Версия JS: 1.33 | Версия CSS: 3.35