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

Лишние символы при копирование текстового файла - C++

Восстановить пароль Регистрация
 
Semapv
0 / 0 / 0
Регистрация: 19.09.2010
Сообщений: 11
19.09.2010, 13:22     Лишние символы при копирование текстового файла #1
не могу понять почему при копировании текстового файла у меня вставляются в конец куча лишних символов, причем чем больше файл тем больше будет символов, например я пытаюсь скопировать:

....города, поспешившей туда на шум. Когда привели его к начальнику, немедленно подвергли пытке, как человека, которого все считали негоднейшим, и он сознался, что проник в дом ростовщиков с целью воровства, почему начальник решил тотчас же велеть его повесить.
, а в итоговом получаю:
....города, поспешившей туда на шум. Когда привели его к начальнику, немедленно подвергли пытке, как человека, которого все считали негоднейшим, и он сознался, что проник в дом ростовщиков с целью воровства, почему начальник решил тотчас же велеть его повесить.
ННННН
вот код программы:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <fstream>
#include <iostream>
using namespace std;
int main()
{
    ofstream f("c:\\temp1.txt");
    ifstream f1("c:\\temp.txt");
    if (!f||!f1)
    {
        cout << "error";
        return 0;
    }
    f1.seekg (0, ios::end);
    int length = f1.tellg();
    f1.seekg (0, ios::beg);
    char * s = new char [length];
        f1.read(s,length);
        f.write(s,length);
    f1.close();
    f.close();
    return 1;
}
Наверно плохо искал, но так и не нашел из-за чего могут появиться лишние символы.
ладно бы вставлял другой размер буфера, так ведь вставлю тоже что и прочитал, а итоговый файл получается больше исходного.
Подскажите, пожалуйста, где и что я пропустил.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Andrew_Lvov
Эксперт C++
 Аватар для Andrew_Lvov
259 / 189 / 5
Регистрация: 19.08.2010
Сообщений: 758
Записей в блоге: 1
19.09.2010, 13:34     Лишние символы при копирование текстового файла #2
Файл, с к-рым код не работает, можешь привести ?
Semapv
0 / 0 / 0
Регистрация: 19.09.2010
Сообщений: 11
19.09.2010, 13:44  [ТС]     Лишние символы при копирование текстового файла #3
Код работае, только не так как надо, вот файл в архиве
Вложения
Тип файла: rar temp.rar (164.1 Кб, 16 просмотров)
fasked
Эксперт C++
 Аватар для fasked
4925 / 2505 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
19.09.2010, 14:10     Лишние символы при копирование текстового файла #4
Попробуйте открывать файлы в бинарном режиме, скорее всего что-то спереносами строк:
C++
1
2
ofstream f("temp1.txt", ios::binary);
ifstream f1("temp.txt", ios::binary);
И не забудьте в конце программы освободить выделенную память.
C++
1
delete[] s;
Также принято возвращать 0 в случае успешного завершения программы и другие значения в случае ошибок, у Вас наоборот.
Semapv
0 / 0 / 0
Регистрация: 19.09.2010
Сообщений: 11
19.09.2010, 14:13  [ТС]     Лишние символы при копирование текстового файла #5
Спасибо, действительно помогло.
Yandex
Объявления
19.09.2010, 14:13     Лишние символы при копирование текстового файла
Ответ Создать тему
Опции темы

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