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

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

Войти
Регистрация
Восстановить пароль
 
Holsteng
47 / 10 / 3
Регистрация: 26.03.2012
Сообщений: 246
#1

Запись в текстовый файл адресов вместо строк - C++

08.08.2012, 22:26. Просмотров 559. Ответов 2
Метки нет (Все метки)

Всем привет.

Ребята, читаю из бинарного файла структуру и хочу все записать в текстовый файл.

Структура

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
struct Client
    {
            
        wchar_t strname[100];//ФИО клиента
        wchar_t straddress[50];// название улицы
        int numberinlist;//номер по списку клиента
        int inumberhome;// номер дома
        int numberappartment;// номер квартиры
        int numbercontract;// номер договора
        int ipaket;// номер пакета
        int iDebt;// денежный баланс клиента
        bool isnotconnect;//флаг для определения подключен ли клиент к сети
    };
Если вывожу в Edit все выводится корректно, а когда вывожу в текстовый файл, то вместо строк выводятся адреса. Подскажите, где возможно ошибка.
C++
1
2
wchar_t strname[100];//ФИО клиента
wchar_t straddress[50];// название улицы
Считывание из бинарного файла и запись в текстовый файл.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
void CableTV::CatalogOfClient()
{
    ofstream outFileUser ( "Список всех клиентов.txt", ios::out );
    ifstream ClientFile ( "ListOfClients.dat", ios::binary|ios::in);
    ClientFile.seekg( 0 );
    Client client;
    ClientFile.read( reinterpret_cast< char *>( &client ),sizeof( Client ) );
    while ( !ClientFile.eof() )
    {
        if ( client.numberinlist!=0 )
        {
            outFileUser << setw(18) << client.numberinlist << setw(20) << client.strname 
                << setw(12) << client.straddress << setw(14) << client.inumberhome <<
                setw(14) << client.numberappartment << setw(14) << lient.numbercontract<<
                setw(14) << client.ipaket <<setw(14) << client.iDebt<< endl;
        }
 
        ClientFile.read( reinterpret_cast<  char *>( &client ),sizeof( Client ) );
    }
    ShellExecute(0,_TEXT("open"),_TEXT("Список всех клиентов.txt"),0,0,SW_SHOWDEFAULT);
    
}
Заранее спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.08.2012, 22:26     Запись в текстовый файл адресов вместо строк
Посмотрите здесь:

C++ Запись данных в текстовый файл
C++ Запись в текстовый файл
Запись данных в текстовый файл C++
Неправильная запись в текстовый файл C++
C++ Запись значений в текстовый файл
C++ Запись данных в текстовый файл
Запись в созданный текстовый файл C++
До запись в текстовый файл C++
Чтение и запись из/в текстовый файл C++
C++ Запись в текстовый файл
Запись данных в текстовый файл C++
Запись структуры в текстовый файл C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MrCold
852 / 750 / 71
Регистрация: 11.01.2012
Сообщений: 1,942
08.08.2012, 23:59     Запись в текстовый файл адресов вместо строк #2
В структуре "широкие строки "
C++
1
wchar_t strname[100];
Значит и работа с файлом - wifstream, wofstream
Holsteng
47 / 10 / 3
Регистрация: 26.03.2012
Сообщений: 246
09.08.2012, 16:01  [ТС]     Запись в текстовый файл адресов вместо строк #3
Попробовал
C++
1
wofstream
, теперь выводит только
C++
1
 client.numberinlist
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
wofstream outFileUser ( "Список всех клиентов.txt", ios::out );
    ifstream ClientFile ( "ListOfClients.dat", ios::binary|ios::in);
    ClientFile.seekg( 0 );
    Client client;
    ClientFile.read( reinterpret_cast< char *>( &client ),sizeof( Client ) );
    while ( !ClientFile.eof() )
    {
        if ( client.numberinlist!=0 )
        {
            outFileUser << setw(18) << client.numberinlist << setw(20) << client.strname 
                << setw(12) << client.straddress << setw(14) << client.inumberhome <<
                setw(14) << client.numberappartment << setw(14) << lient.numbercontract<<
                setw(14) << client.ipaket <<setw(14) << client.iDebt<< endl;
        }
 
        ClientFile.read( reinterpret_cast<  char *>( &client ),sizeof( Client ) );
    }
    ShellExecute(0,_TEXT("open"),_TEXT("Список всех клиентов.txt"),0,0,SW_SHOWDEFAULT);
Добавлено через 15 часов 44 минуты
Всем спасибо! Решил проблему путем перевода Unicode в Ansi перед выводом в файл
Yandex
Объявления
09.08.2012, 16:01     Запись в текстовый файл адресов вместо строк
Ответ Создать тему
Опции темы

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