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

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

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

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

12.12.2013, 16:51. Просмотров 528. Ответов 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
void Add_department::OnBnClickedOk()
{
    char seps[]   = ":";
    char *token;
    char* file_name = "D:\\department.txt";
    char load_string[1000] = "none";
    FILE *file;
    file = fopen( file_name, "r+" );
    if( file != 0 )
    {
        fgets( load_string, 1000 , file );
    }
    else
    {
        MessageBoxA("Не могу открыть файл БД.");
        return;
    }
    UpdateData(true);
    CString ToOut;
    ToOut.Format("%s:",department);
    MessageBoxA(ToOut);
    fwrite(ToOut, sizeof(int), strlen(ToOut)*4+1, file);
    fclose(file);
    OnOK();
}
Хочу добавить в файл запись, но, видимо, ошибка с кодировков или открывает как бинарный, т.к. дописывает кучу знаков, а со второй попытки может вообще не записать.
Должен дописывать в конец файла:
"пример1:пример2:пример3" ... и должен добавляться "пример4:".
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.12.2013, 16:51     Лишние символы при записи в файл
Посмотрите здесь:
Ненужные символы при записи в файл C++
C++ Непонятные символы при записи в файл
Лишние символы в конце строки, записанной в файл C++
Лишние символы при чтении из файла C++
Лишние символы при выводе строк C++
Лишние символы в конце строки при копировании C++
Лишние символы при копирование текстового файла C++
Лишние символы при чтении бинарного файла C++
При выводе массива выводятся лишние непонятные символы C++
C++ Отображаются лишние символы при выводе массива символов
C++ Добавляются лишние символы при выводе данных в поток
C++ При чтение из файла в начало строки добавляются лишние символы

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
12.12.2013, 17:07     Лишние символы при записи в файл #2
Раз используете функцию бинарной записи, то и файл в бинарном режиме нужно открывать (fgets() это не помешает). CString не знаю, но почему так записываете в файл, блоками int (sizeof(int))?
PArkan
0 / 0 / 0
Регистрация: 22.11.2012
Сообщений: 97
12.12.2013, 17:17  [ТС]     Лишние символы при записи в файл #3
Цитата Сообщение от alsav22 Посмотреть сообщение
Раз используете функцию бинарной записи, то и файл в бинарном режиме нужно открывать. CString не знаю, но почему так записываете в файл, блоками int (sizeof(int))?
sizeof(CString) нужно или я не понял суть записи?
Как можно открыть в бинарном режими, хотя было бы лучше использовать обычный txt.
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
12.12.2013, 17:24     Лишние символы при записи в файл #4
Цитата Сообщение от PArkan Посмотреть сообщение
sizeof(CString) нужно или я не понял суть записи?
Если CString состоит из char, то тогда, наверное, так нужно (хотя не знаю, можно ли, к CString, применять strlen()):
C++
1
fwrite(ToOut, sizeof(char), strlen(ToOut), file);
Цитата Сообщение от PArkan Посмотреть сообщение
Как можно открыть в бинарном режими
"rb+"
PArkan
0 / 0 / 0
Регистрация: 22.11.2012
Сообщений: 97
12.12.2013, 17:32  [ТС]     Лишние символы при записи в файл #5
alsav22, пока все отлично. Спасибо.
Yandex
Объявления
12.12.2013, 17:32     Лишние символы при записи в файл
Ответ Создать тему
Опции темы

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