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

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

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

wchar_t to LPCWSTR - C++

21.12.2013, 13:15. Просмотров 575. Ответов 6
Метки нет (Все метки)

Ругается, что text является неинициализированной локальной переменной

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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#include "stdafx.h"
#include <iostream>
#include <Windows.h>
#include "string.h"
 
#define ELEMENT_SIZE (150*1024)
 
int _tmain(int argc, _TCHAR* argv[])
{
    using namespace std;
 
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
 
    WIN32_FIND_DATAW wfd;
 
    wchar_t *text;
 
    wcin>>text;
    wcout << text;
 
    HANDLE const hFind = FindFirstFileW(text, &wfd);
 
    int size = 0;
    int sizel = 0;
 
    do
    {
        cout << "Введите размер файла: ";
        cin >> sizel;
 
        if(sizel < 0)
        {
            cout << "\nОшибка! Введено отрицательное число!\nПовторите попытку!\n\n";
        }
    }while(sizel < 0);
    
    if (INVALID_HANDLE_VALUE != hFind)
    {
        do
        {
            size = (wfd.nFileSizeHigh * (1 + MAXDWORD)) + wfd.nFileSizeLow;
 
            if (size > sizel)
            {
                std::wcout <<"Имя файла: "<< &wfd.cFileName[0] << "\n" << "Размер: " << size << " байт\n\n";
            }
        }while (NULL != FindNextFileW(hFind, &wfd));
 
        getchar();
        getchar();
        FindClose(hFind);
    }
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
17188 / 5442 / 337
Регистрация: 30.03.2009
Сообщений: 14,758
Записей в блоге: 26
21.12.2013, 13:30     wchar_t to LPCWSTR #2
Цитата Сообщение от SlimSky Посмотреть сообщение
Ругается, что text является неинициализированной локальной переменной
Подтверждаю, text является неинициализированной локальной переменной
SlimSky
0 / 0 / 0
Регистрация: 13.12.2013
Сообщений: 11
21.12.2013, 13:36  [ТС]     wchar_t to LPCWSTR #3
И как быть?)
DU
1479 / 1055 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
21.12.2013, 13:37     wchar_t to LPCWSTR #4
для того, чтобы текст больше не являлся неинициализированной локальной переменной, ее нужно инициализировать.
нужно динамически выделить массив,
или статический сделать: wchar_t text[512];
а еще лучше использовать std::wstring text;
SlimSky
0 / 0 / 0
Регистрация: 13.12.2013
Сообщений: 11
21.12.2013, 13:43  [ТС]     wchar_t to LPCWSTR #5
Решил проблему wchar_t text = new wchar_t;
DU
1479 / 1055 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
21.12.2013, 13:46     wchar_t to LPCWSTR #6
ога ога. решили проблему компиляции.
готовтесь к проблемам в рантайме.
еще раз напоминаю: вам нужно работать с массивом символов, а не с одним.
wchar_t* text = new wchar_t; - это динамическое выделение одного символа.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.12.2013, 15:08     wchar_t to LPCWSTR
Еще ссылки по теме:

C++ Почему const wchar_t* воспринимается как wchar_t* ?
C++ CP886 в Multibyte (wchar_t) и BYTE в Multibyte (wchar_t)
C++ Error C2664: невозможно преобразовать из "wchar_t" в "const wchar_t *"
Wchar_t и unsigned wchar_t в windows C++
String и LPCWSTR C++

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

Или воспользуйтесь поиском по форуму:
MrGluck
Ворчун
Эксперт CЭксперт С++
 Аватар для MrGluck
6227 / 3472 / 424
Регистрация: 29.11.2010
Сообщений: 9,178
21.12.2013, 15:08     wchar_t to LPCWSTR #7
Почему просто не использовать std::wstring?
Yandex
Объявления
21.12.2013, 15:08     wchar_t to LPCWSTR
Ответ Создать тему
Опции темы

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