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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Semapv
0 / 0 / 0
Регистрация: 19.09.2010
Сообщений: 11
#1

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

19.09.2010, 13:22. Просмотров 1058. Ответов 4
Метки нет (Все метки)

не могу понять почему при копировании текстового файла у меня вставляются в конец куча лишних символов, причем чем больше файл тем больше будет символов, например я пытаюсь скопировать:

....города, поспешившей туда на шум. Когда привели его к начальнику, немедленно подвергли пытке, как человека, которого все считали негоднейшим, и он сознался, что проник в дом ростовщиков с целью воровства, почему начальник решил тотчас же велеть его повесить.
, а в итоговом получаю:
....города, поспешившей туда на шум. Когда привели его к начальнику, немедленно подвергли пытке, как человека, которого все считали негоднейшим, и он сознался, что проник в дом ростовщиков с целью воровства, почему начальник решил тотчас же велеть его повесить.
ННННН
вот код программы:
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;
}
Наверно плохо искал, но так и не нашел из-за чего могут появиться лишние символы.
ладно бы вставлял другой размер буфера, так ведь вставлю тоже что и прочитал, а итоговый файл получается больше исходного.
Подскажите, пожалуйста, где и что я пропустил.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.09.2010, 13:22
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Лишние символы при копирование текстового файла (C++):

Лишние символы при считывании файла - C++
Считываю структуру с файла и вывожу в консоль, при выводе появляются лишние символы в конце. Скажите пожалуйста с чем это связано и как их...

Лишние символы при чтении из файла - C++
Здравствуйте! Есть текстовый файл следующего содержания: DROP FUNCTION IF EXISTS NumericOnly; CREATE FUNCTION NumericOnly (val...

Лишние символы при чтении бинарного файла - C++
Добрый день, форумчане! Прошу помочь разобраться с проблемой. Программа преобразовывает текстовый файл в двоичный. При выводе...

При чтение из файла в начало строки добавляются лишние символы - C++
getline какую-то фигню читает,причем если первую строку, то вначале добавляет &quot;яэ&quot; int main() { string way = &quot;Example.txt&quot;; ...

Выводит лишние символы из файла - C++
Есть вот такой код, и где-то ошибка есть во второй части (считывания из файла), ближе к концу при выводе расшифрованной строки. Почему-то с...

Удалить в каждой строке лишние пробелы; исходную информацию считать из текстового файла - C++
Пусть задано множество строк. Удалить в каждой строке лишние пробелы. Пробел считается лишним, если он 1) стоит в начале строки ...

4
Andrew_Lvov
Эксперт С++
259 / 189 / 5
Регистрация: 19.08.2010
Сообщений: 760
Записей в блоге: 1
19.09.2010, 13:34 #2
Файл, с к-рым код не работает, можешь привести ?
0
Semapv
0 / 0 / 0
Регистрация: 19.09.2010
Сообщений: 11
19.09.2010, 13:44  [ТС] #3
Код работае, только не так как надо, вот файл в архиве
0
Вложения
Тип файла: rar temp.rar (164.1 Кб, 16 просмотров)
fasked
Эксперт С++
4942 / 2522 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 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 в случае успешного завершения программы и другие значения в случае ошибок, у Вас наоборот.
1
Semapv
0 / 0 / 0
Регистрация: 19.09.2010
Сообщений: 11
19.09.2010, 14:13  [ТС] #5
Спасибо, действительно помогло.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.09.2010, 14:13
Привет! Вот еще темы с ответами:

Лишние символы при выводе строк - C++
При создании игрового поля для тетриса (вывод строк, в соответствии с заданным алгоритмом) возникает странная ошибка. Вместо, собственно,...

Лишние символы при записи в файл - C++
void Add_department::OnBnClickedOk() { char seps = &quot;:&quot;; char *token; char* file_name = &quot;D:\\department.txt&quot;; char...

Лишние символы в конце строки при копировании - C++
При копировании данных в строку (std::string) в цикле, на &quot;стыках&quot; появляются лишние символы. Пример: &lt;meta...

Отображаются лишние символы при выводе массива символов - C++
#include &lt;iostream.h&gt; #include &lt;string.h&gt; // для функций str* /////////////////////////////////////////////////////////// ...


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

Или воспользуйтесь поиском по форуму:
5
Yandex
Объявления
19.09.2010, 14:13
Ответ Создать тему
Опции темы

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