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

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

Восстановить пароль Регистрация
 
PArkan
0 / 0 / 0
Регистрация: 22.11.2012
Сообщений: 97
12.12.2013, 16:51     Лишние символы при записи в файл #1
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:".
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5282 / 4801 / 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
5282 / 4801 / 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     Лишние символы при записи в файл
Ответ Создать тему
Опции темы

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