Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
valik35
1 / 1 / 0
Регистрация: 17.07.2013
Сообщений: 29
#1

запись и чтение wchar_t строк

27.09.2013, 19:49. Просмотров 1151. Ответов 7
Метки нет (Все метки)

Всем добрый вечер.
есть wchar_t str[100], как её запихнуть в текстовый файл используя потоки, а потом считать?

и есть возможность запихнуть её в бинарник а потом считать?

Я так понимаю обычный fstream здесь не катит.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.09.2013, 19:49
Ответы с готовыми решениями:

Чтение из файла и запись строк в массив
Здравствуйте! Сейчас пишу свою реализацию алгоритма FIFS и возникла проблема с...

Работа с файлами. Запись и чтение строк
Добавляю строку в файл "text.txt" а потом пытаюсь получить количество строк в...

Чтение wchar_t
читаю из файла строку wchar_t символов, почему читается какая то хрень?

Почему const wchar_t* воспринимается как wchar_t* ?
Здравствуйте. Я написал вот так: const wchar_t* dir = directory.c_str();...

Открыть текстовый файл в необходимом режиме (на чтение, на чтение и запись, на добавление)
Открыть текстовый файл в необходимом режиме (на чтение, на чтение и запись, на...

7
Olivеr
412 / 408 / 95
Регистрация: 06.10.2011
Сообщений: 832
27.09.2013, 19:58 #2
http://www.cplusplus.com/reference/istream/wiostream/
0
valik35
1 / 1 / 0
Регистрация: 17.07.2013
Сообщений: 29
27.09.2013, 20:05  [ТС] #3
Ок, с записью понятно, а как её достать из потока getline с ней не работает
0
alsav22
5441 / 4836 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
27.09.2013, 20:12 #4
Цитата Сообщение от valik35 Посмотреть сообщение
getline с ней не работает
getline() какой?
0
valik35
1 / 1 / 0
Регистрация: 17.07.2013
Сообщений: 29
27.09.2013, 20:23  [ТС] #5
wchar_t str[100];
...

getline(wis,str);
0
alsav22
5441 / 4836 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
27.09.2013, 20:29 #6
Такой getline() для string, а где они у вас?

Добавлено через 2 минуты
C++
1
2
3
wifstream wis("file");
wchar_t str[100];
wis.getline(str, 100);
Добавлено через 1 минуту
Или так:
C++
1
2
3
wifstream wis("file");
wstring str;
getline(wis, str);
0
valik35
1 / 1 / 0
Регистрация: 17.07.2013
Сообщений: 29
27.09.2013, 20:34  [ТС] #7
вообщем у меня не так, но я так понимаю первый способ это то что мне нужно

C++ (Qt)
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
class User
{
    wchar_t login[100];
    wchar_t password[100];
    wchar_t first_name[50];
    wchar_t last_name[50];
    wchar_t sur_name[50];
    Type_of_user type;
public:
 
friend wostream& operator << (wostream &os, User &obj)
    {
                os<<obj.GetLogin()<<endl;
        os<<obj.GetPassword()<<endl;
        os<<obj.GetFirstName()<<endl;
        os<<obj.GetLastName()<<endl;
        os<<obj.GetSurName()<<endl;
        os<<obj.GetNameOfType()<<endl;
        return os;
    }
};
class Staff
{
    list <User> staff;
public:
        bool Save (HWND hWnd, string name="menu.dat")
    {
        wofstream file(name);
        if(!file)
        {
            MessageBox(hWnd, L"error menu open save file", L"ERROR", MB_ICONERROR);
            return false;
        }
        file<<this;
        return true;
    }
 
};
//сохраняет фигню
Добавлено через 27 секунд
я пока еще не проверял как считывает, мне бы сохранить
0
alsav22
5441 / 4836 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
27.09.2013, 20:53 #8
Вот это неправильно:
C++
1
file<<this;
У вас, для класса Staff, оператор записи не перегружен.

Добавлено через 11 минут
Как-то так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 bool Save (HWND hWnd, string name = "menu.dat")
    {
        wofstream file(name);
        if(!file)
        {
            MessageBox(hWnd, L"error menu open save file", L"ERROR", MB_ICONERROR);
            return false;
        }
        
        list <User>::iterator it;
        for (it = staff.begin(); it != staff.end(); ++it)
            file << *it;
        
        return true;
    }
0
27.09.2013, 20:53
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.09.2013, 20:53

Wchar_t и unsigned wchar_t в windows
Печально, но факт: wchar_t - 2 байта, unsigned wchar_t - 4 байта ...

Cannot convert from 'wchar_t' to 'const wchar_t *'
такой код, порылся в инете не помогло. ломать голову надоело может кто...

[Файлы] Запись-чтение-запись. Почему не прокатывает?
Сначала записываю в файл &quot;а&quot; запись &quot;makulatura&quot;, потом читаю ее в строку h....


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

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