Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.79/29: Рейтинг темы: голосов - 29, средняя оценка - 4.79
19 / 19 / 2
Регистрация: 29.11.2009
Сообщений: 224
1

Как записать текст в файл, не меняя его содержимого?

24.12.2009, 23:13. Показов 5534. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте.

Как записать текст В файл, не меняя его содержимого?

У меня есть функция, которая записывает текст в файл, но она удаляет прежнее содержание. А нужно, чтобы только вставляла текст. Подскажите, как переделать функцию? (или еще что-то)

C++
1
2
3
4
5
6
7
8
9
void writetofile(fstream &file, int from, char* buf)
{
    file.seekg(from);
    int len=strlen(buf);
    len++;
    char str[len];
    strcpy(str, buf);
    file << endl << str << endl;
}
C++
1
2
3
4
5
6
7
8
9
10
int main() 
{ ...
 
File.open(filename, ios::in | ios::out);
char text[]="Some text";
writetofile(File, 160, text);
File.close();
 
...
}
Пробовал также с помощью file.write(), но результат один и тот же. Мне видится только один способ - тупо копировать содержимое файла в буфер (strcat) и потом записать в файл. Но ведь есть же другой способ?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.12.2009, 23:13
Ответы с готовыми решениями:

Как сохранить файл jpg не меняя его физический размер?
Здравствуйте. Пишу программу для стеганографии изображений. На входе есть 2 графических файла...

Как, не меняя и не переставляя главный EXE-файл, при его запуске запускать другие программы?
Здравствуйте! Задачка такая. Есть у меня файл, скажем &quot;D:\Files\example.exe&quot;. Нужно сделать так,...

Считать текст из файла, преобразовать его и записать в другой файл
Имеется текстовый файл input.txt, в котором написан текст, с использованием знаков препинания, ...

Считать текст из файла и записать его в другой файл, заменив каждую первую букву слов
Доброго времени суток Нуждаюсь в помощи. Есть задание: программа должна считывать английский...

10
3528 / 2686 / 334
Регистрация: 11.03.2009
Сообщений: 6,169
25.12.2009, 00:56 2
Вместо ios::in ios::out используй ios::app или ios::ate
0
19 / 19 / 2
Регистрация: 29.11.2009
Сообщений: 224
25.12.2009, 01:12  [ТС] 3
Цитата Сообщение от kazak Посмотреть сообщение
Вместо ios::in ios::out используй ios::app или ios::ate
В таком случае вообще ничего не записывается.

>> kazak

Если вам не сложно, то приведите пример.
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
25.12.2009, 06:31 4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
 
#include <iostream>
#include <fstream>
 
using namespace std;
 
int main(int argc, char *argv[])
{
    ofstream ofile;
    
    if (argc == 1) {
        cerr << "usage: prog string ..." << endl;
        return 1;
    }    
    
    ofile.open("file.txt", ios::app);
    
    if (ofile.is_open() == 0) {
        cerr << "error: file" << endl;
        return 1;
    }
    
    while (argc--)
        ofile << *++argv << endl;
    
    ofile.close();
    
    return 0;
}
0
2 / 2 / 1
Регистрация: 05.06.2009
Сообщений: 9
25.12.2009, 07:09 5
http://shitstream.ru/0xB62A3
0
3528 / 2686 / 334
Регистрация: 11.03.2009
Сообщений: 6,169
25.12.2009, 11:42 6
Цитата Сообщение от kazak Посмотреть сообщение
Вместо ios::in ios::out используй ios::app или ios::ate
Поправлюсь ios::in | ios::out | ios::app или ios::in | ios::out | ios::ate
Модификатор ate сохраняет содержимое файла, если он существует, и усатанавливает указатель в конец файла при открытии; app - то же самое, с той лишь разницей, что устанавливает указатель в конец файла перед каждой записью в файл (т.е. записывать можно только в конец файла).
2
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
25.12.2009, 12:51 7
ate - виндовая добавка, вроде
Миниатюры
Как записать текст в файл, не меняя его содержимого?  
1
3528 / 2686 / 334
Регистрация: 11.03.2009
Сообщений: 6,169
25.12.2009, 13:12 8
На cplusplus.com о винде ничего не упоминалось.
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
25.12.2009, 13:20 9
да, что-то есть, только непонятно, что он делает
Миниатюры
Как записать текст в файл, не меняя его содержимого?  
0
0 / 0 / 0
Регистрация: 14.02.2014
Сообщений: 2
14.02.2014, 23:06 10
Я попытался сделать самую простую версию блокнота
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
#include <iostream.h>
#include <fstream.h>
using namespace std;
void main() {
    ofstream txt;
    txt.open("C:\\dm\\bin\\newtxt.txt", ios::app);
    while (true) {
        int character = getchar();
        txt << character;
        cout << character;
    }
    txt.close();
}
Файл после любых манипуляций с экзешником пустой.
Объясните, пожалуйста, причину, если можете.
0
3528 / 2686 / 334
Регистрация: 11.03.2009
Сообщений: 6,169
15.02.2014, 09:21 11
Цитата Сообщение от Ал2002 Посмотреть сообщение
C++
1
2
txt.open("C:\\dm\\bin\\newtxt.txt", ios::app);
while (true) {
Для начала
C++
1
2
3
4
5
6
7
txt.open("C:\\dm\\bin\\newtxt.txt", ios::app);
if (!txt.is_open())
{
   cout << "Can't open file." << endl;
   exit(1);
}   
while (true) {
1
15.02.2014, 09:21
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.02.2014, 09:21
Помогаю со студенческими работами здесь

Считать текст из файла и вывести его на экран, меняя местами каждые два соседних слова
Написать программу, которая считывает текст из файла и выводит его на экран, меняя местами каждые...

Считать текст из файла и вывести его на экран, меняя местами каждые два соседних слова
Написать программу, которая считывает текст из файла и выводит его на экран, меняя местами каждые...

Как по хэндлу процесса сделать дамп его памяти и записать его в файл?
Имеем VB 5.0. Есть чужое приложение на дельфи. Нужно сохранить в файл область память этого чужого...

Как в uwp, при нажатии на кнопку(батон клик), ЗАПИСАТЬ ТЕКСТ из текст бокса, который мы заранее в него вводили,в файл
Помогите, срочнооо


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru