С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
0 / 0 / 0
Регистрация: 19.09.2010
Сообщений: 11
1

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

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

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

....города, поспешившей туда на шум. Когда привели его к начальнику, немедленно подвергли пытке, как человека, которого все считали негоднейшим, и он сознался, что проник в дом ростовщиков с целью воровства, почему начальник решил тотчас же велеть его повесить.
, а в итоговом получаю:
....города, поспешившей туда на шум. Когда привели его к начальнику, немедленно подвергли пытке, как человека, которого все считали негоднейшим, и он сознался, что проник в дом ростовщиков с целью воровства, почему начальник решил тотчас же велеть его повесить.
ННННН
вот код программы:
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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Блог
19.09.2010, 13:22
Ответы с готовыми решениями:

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

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

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

При удалении строки из файла остаются лишние символы
Вот что в файле тогда появляется вместо удаленной записи struct Meteoprognoz { char data;...

4
Эксперт С++
261 / 191 / 10
Регистрация: 19.08.2010
Сообщений: 760
Записей в блоге: 1
19.09.2010, 13:34 2
Файл, с к-рым код не работает, можешь привести ?
0
0 / 0 / 0
Регистрация: 19.09.2010
Сообщений: 11
19.09.2010, 13:44  [ТС] 3
Код работае, только не так как надо, вот файл в архиве
Вложения
Тип файла: rar temp.rar (164.1 Кб, 16 просмотров)
0
Эксперт С++
5043 / 2622 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 2
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
0 / 0 / 0
Регистрация: 19.09.2010
Сообщений: 11
19.09.2010, 14:13  [ТС] 5
Спасибо, действительно помогло.
0
19.09.2010, 14:13
BasicMan
Эксперт
19315 / 2622 / 84
Регистрация: 17.02.2009
Сообщений: 10,364
Блог
19.09.2010, 14:13
Помогаю со студенческими работами здесь

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

Появляются лишние символы при считывании текстового файла
Добрый день. Необходима помощь, имеется текстовый файл, в котором содержится информация о том или...

Лишние символы при чтении из файла
Из переменной buffer элементы строки записываются в двумерный массив, а после выводятся. Но при...

Лишние пробелы при выводе текстового файла на экран
var f:text; Procedure Print; var s:string; begin reset(f); while not EOF(f) do begin...


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

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