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

Не могу разбить строку по разделителю - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Возможно ли как-то перехватить действия процесса и повторить их? http://www.cyberforum.ru/cpp-beginners/thread1788122.html
Доброго времени суток всем! Есть программа управляющая скоростью кулера. Я хотел бы каким-то образом записать и повторить действия, которые совершает программа по нажатию на кнопку. Подскажите возможно ли это и как это сделать? Спасибо. Зачем? Нет другой возможности контролировать работу кулера, а ноут перегревается и выключается. На сайте производителя ноута проблема не решается (уже...
C++ Цикл: каждый символ символьного массива вывести на новой строке консоли Доброго всем здравия, споткнулся на ровном месте, цикл do while отказывается делать, то что я хочу char S = "gcfhgcf hdhgf 4754 bmhfjh hfhf"; int i = 0; do { cout << S << endl; i++; } while (S == '\0'); http://www.cyberforum.ru/cpp-beginners/thread1788084.html
Как в условие if (ch !=.) внести несколько значений? C++
Добрый день! В программе создаю условие if(ch!='w')cout<<"Error"; Как можно записать условие(если это вообще возможно), когда допускается несколько литер, то есть кроме w, я хочу записать ещё , например, s, n. Пытался записать таким образом: if(ch!={'w','s','n','e'})cout<<"Error"; Но это неправильно.
Найти 5 наибольших элементов в двумерном массиве C++
В двумерном массиве нужно найти 5 наибольших элементов и вывести их на экран с указанием их индексов. Я только начал изучать C++, код программы я написал. У меня получилось в нем три "больших" цикла. Первый заполняется массив рандомными числами, второй находит 5 максимальных элементов, третий проходит весь массив и по значениям 5 максимальных элементов определяет их индексы. Если вывести 5...
C++ Подскажите пожалуйста, Почему применяется & к имени класса ? http://www.cyberforum.ru/cpp-beginners/thread1788072.html
Подскажите пожалуйста, Почему применяется & к имени класса. не могу понять для чего и как оно работает в int &atype::operator(int i) using namespace std; const int Size=3; class atype { int a; public: atype(int i) { for(int i=0;i<Size;i++) a=i; }
C++ Пример функции для изменения региона защиты памяти процесса с Read Only на Write Copy будьте добры привести пример функции для изменения региона защиты памяти процесса с Read Only на Write Copy VirtualAlloc - не подходит подробнее

Показать сообщение отдельно
nofx
7 / 7 / 1
Регистрация: 28.10.2012
Сообщений: 85
Завершенные тесты: 1
02.08.2016, 18:59     Не могу разбить строку по разделителю
Цитата Сообщение от nwpepper Посмотреть сообщение
А подскажите как выложить весь проект? Я с удовольствием поделюсь.
Нужно перейти к папке на диске, в которой сохранены Ваши файлы. Чтобы быстро перейти к этой папке нужно через "Обозреватель решений" (ага, есть такой в VS, можно погуглить) а там клацнуть правой кнопкой мышки по файлу проекта (!), далее в контекстном меню пункт "Открыть папку в проводнике"

А вообще, у Вас проблема может быть связана с настройкой проекта - возможно, нужно перевести свойство "Набор символов" в использовать Unicode

Добавлено через 1 час 9 минут
Жи есть! Как-то так
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
#include <Windows.h>
#include <stdio.h>
//#include <tchar.h> - Гуру не рекомендуют вместе с <Windows.h> ! 
#include <vector>
#include <conio.h>
using namespace std;
 
TCHAR* getstrForCopyFiles(TCHAR* myStr, std::vector<TCHAR*> &massID)
{
    static TCHAR strForCopyFiles[MAX_PATH] = L"";  // а зачем прибавляли + 1 ?
 
    for (vector<TCHAR*>::iterator it = massID.begin(); it != massID.end(); it++)
    {
        //std::wstring stemp = s2ws(*it);
        LPCWSTR result = (LPCWSTR)*it;
        lstrcat(strForCopyFiles, result);
        lstrcat(strForCopyFiles, L"|");
        lstrcat(strForCopyFiles, myStr);
        lstrcat(strForCopyFiles, L";");
    }
 
    return strForCopyFiles;
}
 
 
int main()
{
    TCHAR* id_1 = L"Test";
    vector<TCHAR*> massID;
    massID.push_back(id_1);
 
    TCHAR* strForCopyFiles = getstrForCopyFiles(TEXT("D:\\ANT\\Act_2016_07.rar"), massID);
 
    // 2. Разбираем строку и копируем файлы на устройства
    wchar_t * context = NULL;
    wchar_t * token = NULL;
    token = wcstok_s(strForCopyFiles, L";", &context);
 
    // Всё норм, в консоль ерунду выводит
    while (token != NULL) {
        wprintf_s(L"%s\n", token);
        token = wcstok_s(NULL, L";", &context);
    }
 
    _getwch();
}
Добавлено через 18 минут
Поспешил. А вот реализация, которая будет работать как и с включенным юникодом, так и с обычными строками.
Там видно, засчет чего это делается.
П.С вот по теме ссыль, которую нужно какбе вкурить https://habrahabr.ru/post/164193/
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
#include <Windows.h>
#include <stdio.h>
//#include <tchar.h> - Гуру не рекомендуют вместе с <Windows.h> ! 
#include <vector>
#include <conio.h>
using namespace std;
 
TCHAR* getstrForCopyFiles(TCHAR* myStr, std::vector<TCHAR*> &massID)
{
    static TCHAR strForCopyFiles[MAX_PATH] = TEXT("");  // а зачем прибавляли + 1 ?
 
    for (vector<TCHAR*>::iterator it = massID.begin(); it != massID.end(); it++)
    {
        //std::wstring stemp = s2ws(*it);
        LPCTSTR result = (LPCTSTR)*it;
        lstrcat(strForCopyFiles, result);
        lstrcat(strForCopyFiles, TEXT("|"));
        lstrcat(strForCopyFiles, myStr);
        lstrcat(strForCopyFiles, TEXT(";"));
    }
 
    return strForCopyFiles;
}
 
 
int main()
{
    TCHAR* id_1 = TEXT("Test");
    vector<TCHAR*> massID;
    massID.push_back(id_1);
 
    TCHAR* strForCopyFiles = getstrForCopyFiles(TEXT("D:\\ANT\\Act_2016_07.rar"), massID);
 
    // 2. Разбираем строку и копируем файлы на устройства
    TCHAR * context = NULL;
    TCHAR * token = NULL;
    
    token = strtok_s(strForCopyFiles, TEXT(";"), &context);
    
    // Всё норм, в консоль ерунду выводит
    while (token != NULL) {
        printf_s(TEXT("%s\n"), token);
        token = strtok_s(NULL, TEXT(";"), &context);
    }
 
    _getwch();
}
 
Текущее время: 00:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru