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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 5.00
DiViLoYs
0 / 0 / 0
Регистрация: 27.03.2013
Сообщений: 57
#1

Как перевести массив char[] в char* - C++

13.04.2013, 16:58. Просмотров 1740. Ответов 35
Метки нет (Все метки)

Не знаю как перевести массив char[] в переменную char*
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
A1exSun
C#
55 / 55 / 1
Регистрация: 09.03.2013
Сообщений: 214
13.04.2013, 17:52     Как перевести массив char[] в char* #16
C++
1
outfile << szModName;
Так пробовал?
phantom96
MЫW
124 / 109 / 1
Регистрация: 15.02.2013
Сообщений: 538
13.04.2013, 17:53     Как перевести массив char[] в char* #17
Код
0014D5580014D5580014D5580014D5580014D5580014D5580014D5580014D5580014D5580014D5580014D5580014D5580014D5580014D5580014D5580014D5580014D5580014D5580014D5580014D5580014D5580014D5580014D5580014D5580014D5580014D5580014D5580014D5580014D5580014D5580014D5580014D5580014D5580014D5580014D5580014D5580014D5580014D5580014D5580014D5580014D5580014D5580014D5580014D5580014D5580014D5580014D5580014D5580014D5580014D5580014D5580014D5580014D5580014D5580014D5580014D5580014D5580014D5580014D5580014D5580014D5580014D5580014D5580014D5580014D5580014D5580014D5580014D5580014D5580014D5580014D5580014D5580014D5580014D5580014D5580014D5580014D5580014D558
От <<szModName
A1exSun
C#
55 / 55 / 1
Регистрация: 09.03.2013
Сообщений: 214
13.04.2013, 17:54     Как перевести массив char[] в char* #18
А в консоль оно что выводит?
phantom96
MЫW
124 / 109 / 1
Регистрация: 15.02.2013
Сообщений: 538
13.04.2013, 17:56     Как перевести массив char[] в char* #19
В консоль всё прекрасно выводит.

Добавлено через 19 секунд
Код
E:\COD4\iw3mp.exe
C:\Windows\SysWOW64\ntdll.dll
C:\Windows\syswow64\kernel32.dll
C:\Windows\syswow64\KERNELBASE.dll
C:\Windows\system32\WINMM.dll
C:\Windows\syswow64\msvcrt.dll
C:\Windows\syswow64\USER32.dll
C:\Windows\syswow64\GDI32.dll
C:\Windows\syswow64\LPK.dll
C:\Windows\syswow64\USP10.dll
C:\Windows\syswow64\ADVAPI32.dll
C:\Windows\SysWOW64\sechost.dll
C:\Windows\syswow64\RPCRT4.dll
C:\Windows\syswow64\SspiCli.dll
C:\Windows\syswow64\CRYPTBASE.dll
C:\Windows\system32\WSOCK32.dll
C:\Windows\syswow64\WS2_32.dll
C:\Windows\syswow64\NSI.dll
E:\COD4\mss32.dll
E:\COD4\binkw32.dll
C:\Windows\system32\d3d9.dll
C:\Windows\system32\VERSION.dll
C:\Windows\system32\d3d8thk.dll
C:\Windows\system32\dwmapi.dll
C:\Windows\system32\d3dx9_34.dll
C:\Windows\system32\DSOUND.dll
C:\Windows\syswow64\ole32.dll
C:\Windows\system32\POWRPROF.dll
C:\Windows\syswow64\SETUPAPI.dll
C:\Windows\syswow64\CFGMGR32.dll
C:\Windows\syswow64\OLEAUT32.dll
C:\Windows\syswow64\DEVOBJ.dll
C:\Windows\syswow64\SHELL32.dll
C:\Windows\syswow64\SHLWAPI.dll
C:\Windows\system32\DDRAW.dll
C:\Windows\system32\DCIMAN32.dll
C:\Windows\system32\IMM32.DLL
C:\Windows\syswow64\MSCTF.dll
C:\Windows\system32\uxtheme.dll
C:\Windows\system32\mswsock.dll
C:\Windows\System32\wshtcpip.dll
C:\Windows\system32\NLAapi.dll
C:\Windows\system32\napinsp.dll
C:\Windows\system32\pnrpnsp.dll
C:\Windows\system32\DNSAPI.dll
C:\Windows\System32\winrnr.dll
C:\Windows\system32\wshbth.dll
C:\Windows\system32\IPHLPAPI.DLL
C:\Windows\system32\WINNSI.DLL
C:\Windows\System32\fwpuclnt.dll
C:\Windows\system32\rasadhlp.dll
C:\Windows\syswow64\CLBCatQ.DLL
C:\Windows\System32\MMDevApi.dll
C:\Windows\System32\PROPSYS.dll
C:\Windows\system32\AUDIOSES.DLL
E:\COD4\miles\mssmp3.asi
E:\COD4\miles\mssvoice.asi
E:\COD4\miles\milesEq.flt
E:\COD4\miles\mssds3d.flt
E:\COD4\miles\mssdsp.flt
E:\COD4\miles\msseax.flt
C:\Windows\system32\avrt.dll
C:\Windows\system32\nvd3dum.dll
C:\Windows\syswow64\PSAPI.DLL
C:\Program Files (x86)\NVIDIA Corporation\3D Vision\nvSCPAPI.dll
C:\Windows\system32\wdmaud.drv
C:\Windows\system32\ksuser.dll
C:\Windows\system32\msacm32.drv
C:\Windows\system32\MSACM32.dll
C:\Windows\system32\midimap.dll
E:\COD4\pb\pbcl.dll
C:\Windows\system32\profapi.dll
C:\Users\phantom96\AppData\Local\PunkBuster\COD4\pb\pbag.dll
E:\COD4\pb\pbsv.dll
C:\Windows\system32\nvapi.dll
C:\Windows\syswow64\WINTRUST.dll
C:\Windows\syswow64\CRYPT32.dll
C:\Windows\syswow64\MSASN1.dll
Для продолжения нажмите любую клавишу . . .
A1exSun
C#
55 / 55 / 1
Регистрация: 09.03.2013
Сообщений: 214
13.04.2013, 17:57     Как перевести массив char[] в char* #20
Пиши в файл с помощью fprintf().
phantom96
MЫW
124 / 109 / 1
Регистрация: 15.02.2013
Сообщений: 538
13.04.2013, 18:08     Как перевести массив char[] в char* #21
C++
1
2
file = fopen("test.txt", "w+");
                fprintf(file, "%s\n", szModName);
Не хочет(

Добавлено через 17 секунд
Код
C
Результат.
w8me
496 / 11 / 1
Регистрация: 10.04.2013
Сообщений: 44
13.04.2013, 18:18     Как перевести массив char[] в char* #22
Странно этот код , и оба варианта в нем отлично пишут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
    HANDLE hProcess = GetCurrentProcess();
    DWORD cbNeeded=0;
    HMODULE hMods[100];
    int i;
    if( EnumProcessModules(hProcess, hMods, sizeof(hMods), &cbNeeded))
    {
        for ( i = 0; i < (cbNeeded / sizeof(HMODULE)); i++ )
        {
            TCHAR szModName[MAX_PATH];
            if ( GetModuleFileNameEx( hProcess,(HINSTANCE)hMods[i], szModName,(MAX_PATH-1)*sizeof(TCHAR)))
            {
                _tprintf( TEXT("%s\n"), szModName); 
                std::ofstream outfile;
 
                outfile.open("test.txt", std::ios::out | std::ios::app);
            //  outfile << szModName; 
                outfile.write(szModName, strlen(szModName));
                outfile.close();    
            }                       
        }
    }
phantom96
MЫW
124 / 109 / 1
Регистрация: 15.02.2013
Сообщений: 538
13.04.2013, 18:21     Как перевести массив char[] в char* #23
hProcess,(HINSTANCE)hMods[i], szModName,(MAX_PATH-1)*sizeof(TCHAR)))
У меня эта строка по другому выглядит.
w8me
496 / 11 / 1
Регистрация: 10.04.2013
Сообщений: 44
13.04.2013, 18:23     Как перевести массив char[] в char* #24
Ну так пишет у вас или нет?
phantom96
MЫW
124 / 109 / 1
Регистрация: 15.02.2013
Сообщений: 538
13.04.2013, 18:24     Как перевести массив char[] в char* #25
Код
Ошибка	4	error C2664: std::basic_ostream<_Elem,_Traits>::write: невозможно преобразовать параметр 1 из "TCHAR [260]" в "const char *"	g:\launcher__1\consoleapplication1\consoleapplication1.cpp	104	1	ConsoleApplication1
Вот такая ошибка с вашим кодом.
w8me
496 / 11 / 1
Регистрация: 10.04.2013
Сообщений: 44
13.04.2013, 18:24     Как перевести массив char[] в char* #26
C++
1
outfile.write(&szModName[0], strlen(&szModName[0]));
И еще уберите в настройках поддержку Unicode
phantom96
MЫW
124 / 109 / 1
Регистрация: 15.02.2013
Сообщений: 538
13.04.2013, 18:26     Как перевести массив char[] в char* #27
Код
                outfile.write(&szModName[0], strlen(&szModName[0]));
Код
Ошибка	4	error C2664: std::basic_ostream<_Elem,_Traits>::write: невозможно преобразовать параметр 1 из "TCHAR *" в "const char *"	g:\launcher__1\consoleapplication1\consoleapplication1.cpp	116	1	ConsoleApplication1
w8me
496 / 11 / 1
Регистрация: 10.04.2013
Сообщений: 44
13.04.2013, 18:29     Как перевести массив char[] в char* #28
Если уж пишете для Unicode так везде
C++
1
2
std::wofstream outfile;
lstrlenW(&szModName[0]) //вместо strlen
phantom96
MЫW
124 / 109 / 1
Регистрация: 15.02.2013
Сообщений: 538
13.04.2013, 18:34     Как перевести массив char[] в char* #29
Ничего не пишет. Если удалить файл то создаёт пустой. В консоли по прежнему всё нормально.

Добавлено через 3 минуты
C++
1
2
3
4
5
                                _tprintf( TEXT("%s\n"), szModName); 
                
                std::wofstream outfile;
                outfile.open("test.txt", std::ios::out | std::ios::app);              
                lstrlenW(&szModName[0]); //вместо strlen
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.04.2013, 18:35     Как перевести массив char[] в char*
Еще ссылки по теме:
Как перевести string в char* ? C++
C++ Как long перевести в char?
C++ Как перевести из char в int?
C++ char* rev_str(char*); Как обратиться из main()?
Копирование char* в массив char[i]* C++

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

Или воспользуйтесь поиском по форуму:
w8me
496 / 11 / 1
Регистрация: 10.04.2013
Сообщений: 44
13.04.2013, 18:35     Как перевести массив char[] в char* #30
Вместо strlen , а не всей ф-ии.
C++
1
2
3
4
5
6
                _tprintf( TEXT("%s\n"), szModName); 
                std::wofstream outfile;
 
                outfile.open(_T("test.txt"), std::ios::out | std::ios::app);
                outfile.write(&szModName[0], lstrlenW(&szModName[0]));
                outfile.close();
Yandex
Объявления
13.04.2013, 18:35     Как перевести массив char[] в char*
Ответ Создать тему
Опции темы

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