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

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

Войти
Регистрация
Восстановить пароль
 
Miwa123
37 / 37 / 1
Регистрация: 16.04.2013
Сообщений: 317
Записей в блоге: 1
#1

обрезает файл - C++

05.09.2013, 20:31. Просмотров 309. Ответов 5
Метки нет (Все метки)

файл 103 кб. его расширение ".1603"(фиг знает где я его нашел). после записи он весит всего 8кб
обрабатываю этим
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void handler_file(char*path)
{
    char buff[100000];
    FILE* pFile;
    char ch;
    int i=0;
    pFile = fopen(path, "r");
    while((ch=getc(pFile))!=EOF)
    buff[i++]=ch;
    buff[i]=NULL;
    CharToOem(LPCWSTR(buff),buff);
    fclose(pFile); 
    pFile = fopen(path, "w");
    fprintf(pFile,buff);
    fclose(pFile); 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.09.2013, 20:31
Здравствуйте! Я подобрал для вас темы с ответами на вопрос обрезает файл (C++):

std::string variable.data() обрезает содержимое строки - C++
Всем доброй ночи // read a file into memory #include <iostream> // std::cout #include <fstream> // std::ifstream ...

функция, которая обрезает пробелы в конце переданной ей строки - C++
Ребята, здравствуйте, Подскажите, пожалуйста, как написать функцию (на С/С++), которая обрезает пробелы в конце переданной ей строки. ...

Файл: Скопировать текст в другой текстовый файл файл, но чётные строки должны быть с большой буквы... - C++
Создать текстовый файл. Скопировать текст в другой текстовый файл файл, но чётные строки должны быть с большой буквы, а нечетные с...

Даны натуральное , символьный файл и текстовый файл . Файл содержит 30 слов , каждое из которых будем называть ключевым - C++
Добрый день, помогите пожалуйста сделать вот такую программу. Даны натуральное k , символьный файл f и текстовый файл f1 . Файл f...

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

PDFSharp обрезает файл - C#
Здравствуйте. Я столкнулся с такой проблемой. static public void preView(string filename, AxAcroPDF PDF1) { ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
alsav22
5417 / 4813 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
05.09.2013, 20:48 #2
Количество считанного в буфер проверьте. Если считано меньше, чем в файле, то значит в файле, есть -1, которая трактуется, при чтении, как символ конца файла. Значит нужно метод чтения изменить. Файл выложите.
palva
2610 / 1832 / 262
Регистрация: 08.06.2007
Сообщений: 6,989
Записей в блоге: 4
05.09.2013, 21:18 #3
Боюсь, что в данном случае байт 0xFF попадет в переменную ch как -1 и будет далее интерпретирован как EOF. Может быть переменную ch описать иначе?
C++
1
int ch
Добавлено через 11 минут
При чтении файла в текстовом режиме символ 0x1A воспринимается как конец файла. При открытии файла вы не указываете режим. Проверьте, какое умолчание использует ваш компилятор. Надежнее открывать с параметрами "rb" и "wb" соответственно.
alsav22
5417 / 4813 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
05.09.2013, 21:34 #4
C++
1
2
3
4
5
6
while(1)
{
     ch = getc(pFile);
     if (feof(pFile)) break;
     buff[i++] = ch;
}
Miwa123
37 / 37 / 1
Регистрация: 16.04.2013
Сообщений: 317
Записей в блоге: 1
05.09.2013, 21:38  [ТС] #5
Цитата Сообщение от palva Посмотреть сообщение
Боюсь, что в данном случае байт 0xFF попадет в переменную ch как -1 и будет далее интерпретирован как EOF. Может быть переменную ch описать иначе?
C++
1
int ch
Добавлено через 11 минут
При чтении файла в текстовом режиме символ 0x1A воспринимается как конец файла. При открытии файла вы не указываете режим. Проверьте, какое умолчание использует ваш компилятор. Надежнее открывать с параметрами "rb" и "wb" соответственно.
объявил как инт - все заработало! СПСИБО
alsav22
5417 / 4813 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
05.09.2013, 22:07 #6
Только размер буфера увеличьте. Файл размером 110 463 байта, а размер буфера 100 000. Поэтому читается за границу массива (у меня, в студии, исключение выдаёт).
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.09.2013, 22:07
Привет! Вот еще темы с ответами:

Обрезает слова!!!! - HTML, CSS
обрезает на главной сайта http://carpmaster.by ПОЙМАЛ-ОТПУСТИЛ,как сделать чтобы не обрезало???

Random обрезает нули - SQL Server
Здравствуйте! Выбираю данные из одной таблицы и записываю их в другую параллельно округляя до нужного знака после запятой с помощью...

Windows 8,7 обрезает окна - C#
Не подскажете, от чего это вообще? Обрезает окна на вин 7, 8. На вин ХР такой проблемы нет, и все отображает нормально. Причем не...

File_get_contents обрезает страницу - PHP
Доброго времени суток! проблема следующая - использую file_get_contents для получения кода страницы сайта и дальнейшей работы с кодом.. ...


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

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

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