19.07.2018, 10:42 [+3 UTC]
в нашей команде: 2 883 чел. | участники онлайн: 5 (рекорд: 21)

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

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

:: все разделы

:: правила

:: новости

:: участники

:: доска почёта

:: форум

:: блоги

:: поиск

:: статистика

:: наш журнал

:: наши встречи

:: наша галерея

:: отзывы о нас

:: поддержка

:: руководство

Версия системы:
7.47 (16.04.2018)

Общие новости:
13.04.2018, 10:33

Форум:
17.07.2018, 12:50

Последний вопрос:
16.07.2018, 07:17

Последний ответ:
13.07.2018, 17:32

Последняя рассылка:
19.07.2018, 04:45

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

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

Наша кнопка:

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

Отзывы о нас:
28.07.2013, 12:07 »
Алексеев Владимир Николаевич
Очень полезный Ответ для меня и всех мед-учреждений Облученского р-на! Большое Вам спасибо Игорь Константинович! [вопрос № 187509, ответ № 272462]
24.12.2009, 08:03 »
Olgaa
Огромное спасибо! Всё работает! [вопрос № 175579, ответ № 258090]
14.06.2010, 05:48 »
Киселев Сергей
Спасибо за исчерпывающий ответ. [вопрос № 179076, ответ № 262090]

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

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

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

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

CradleA
Статус: Профессор
Рейтинг: 103
solowey
Статус: Студент
Рейтинг: 88
mklokov
Статус: 6-й класс
Рейтинг: 24

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

Консультация онлайн # 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.13324 сек.

© 2001-2018, Портал RFPRO.RU, Россия
Калашников О.А.  |  Гладенюк А.Г.
Версия системы: 7.47 от 16.04.2018