Форум программистов, компьютерный форум CyberForum.ru

C++

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 36, средняя оценка - 4.81
OVERPOWER8
19 / 19 / 1
Регистрация: 29.11.2009
Сообщений: 224
#1

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

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

Здравствуйте.

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

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

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) и потом записать в файл. Но ведь есть же другой способ?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.12.2009, 23:13     Как записать текст в файл, не меняя его содержимого?
Посмотрите здесь:

C++ Как с консоли записать в файл русский текст
C++ Как прочитать текст из файла и записать его в vector ?
C++ Написать программу,которая считывает текст из файла и выводит его на экран,меняя местами каждые два соседних слова.
C++ Написать программу, которая считывает текст из файла и выводит его на экран, меняя местами каждые два соседних слова
C++ Builder Как записать текст в файл
Написать программу, которая считывает текст из файла и выводит его на экран, меняя местами каждые два соседних слова C++
Как можно записать видео на экране и сохранить его в avi файл? C++ Builder
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kazak
3032 / 2353 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
25.12.2009, 00:56     Как записать текст в файл, не меняя его содержимого? #2
Вместо ios::in ios::out используй ios::app или ios::ate
OVERPOWER8
19 / 19 / 1
Регистрация: 29.11.2009
Сообщений: 224
25.12.2009, 01:12  [ТС]     Как записать текст в файл, не меняя его содержимого? #3
Цитата Сообщение от kazak Посмотреть сообщение
Вместо ios::in ios::out используй ios::app или ios::ate
В таком случае вообще ничего не записывается.

>> kazak

Если вам не сложно, то приведите пример.
accept
4819 / 3239 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
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;
}
DYNOS
2 / 2 / 0
Регистрация: 05.06.2009
Сообщений: 9
25.12.2009, 07:09     Как записать текст в файл, не меняя его содержимого? #5
http://shitstream.ru/0xB62A3
kazak
3032 / 2353 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
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 - то же самое, с той лишь разницей, что устанавливает указатель в конец файла перед каждой записью в файл (т.е. записывать можно только в конец файла).
accept
4819 / 3239 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
25.12.2009, 12:51     Как записать текст в файл, не меняя его содержимого? #7
ate - виндовая добавка, вроде
Миниатюры
Как записать текст в файл, не меняя его содержимого?  
kazak
3032 / 2353 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
25.12.2009, 13:12     Как записать текст в файл, не меняя его содержимого? #8
На cplusplus.com о винде ничего не упоминалось.
accept
4819 / 3239 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
25.12.2009, 13:20     Как записать текст в файл, не меняя его содержимого? #9
да, что-то есть, только непонятно, что он делает
Миниатюры
Как записать текст в файл, не меняя его содержимого?  
Ал2002
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();
}
Файл после любых манипуляций с экзешником пустой.
Объясните, пожалуйста, причину, если можете.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.02.2014, 09:21     Как записать текст в файл, не меняя его содержимого?
Еще ссылки по теме:

Как искать в файле и записать его в новый файл? C++
C++ Builder Как записать текст из Memo в файл?
C++ Считать текст из файла и записать его в другой файл, заменив каждую первую букву слов
C++ Как записать весь текст в файл
Как записать русский текст в файл? C++

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

Или воспользуйтесь поиском по форуму:
kazak
3032 / 2353 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
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) {
Yandex
Объявления
15.02.2014, 09:21     Как записать текст в файл, не меняя его содержимого?
Ответ Создать тему
Опции темы

Текущее время: 02:24. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru