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

VS 2017 неадекватное поведение - C++

06.01.2018, 01:46. Просмотров 275. Ответов 10
Метки нет (Все метки)

Добрый день! имею VS 2017, вин 10 и следующий код

http://www.cyberforum.ru/cpp-beginners/thread767287.html
Кликните здесь для просмотра всего текста

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
#include <map>
#include <iostream>
#include <fstream>
#include <unordered_map>
#include <string>
#include <regex>
 
using namespace std;
int Level, Target, Speed;
float Time;
    
int main()
    {   
    ifstream ff("test.txt");
        map<string, int> mapVar
            /*{
            { "Level",&Level },
            { "Target",&Target },
            { "Speed",&Speed },
            { "Time",&Time }
            }*/;
        string s{}, txt{};
 
        while (getline(ff, s)) txt += s + " ";
        //string txt{ istreambuf_iterator<char>(ff),istreambuf_iterator<char>() }; 
 
        unordered_map<string, int>vars;
        regex e("(\\w+)\\s*\\=\\s*(\\d+\\.?\\d*)");
 
        for (auto it = sregex_iterator(txt.begin(), txt.end(), e); it != sregex_iterator(); ++it)
        {
            vars.emplace(it->str(1), stod(it->str(2)));
 
            for (const auto&x : vars)
            {
                mapVar.emplace(pair<string, int>(x.first, x.second));
            }
 
        }   
 
        /////вывод на экран содержимого mapVar
        for (auto it = mapVar.begin(); it != mapVar.end(); it++)
        {
            cout << it->first << " : " << it->second << endl;
        }
                
        system("pause");
        return 0;
};

вопрос в том, что без изменения кода через раз выдается ошибка "Е0011 нераспознанная директива препроцессора", это глюк VS или что это может быть? когда выходит ошибка останавливаю отладку и снова жму отладку все работает.
0
Миниатюры
VS 2017 неадекватное поведение  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.01.2018, 01:46
Я подобрал для вас темы с готовыми решениями и ответами на вопрос VS 2017 неадекватное поведение (C++):

Перенос с VS 2017 на CodeBlocks
Изначально написал код в MS Visual Studio 2017. Код рабочий. Возникла...

Выполнение сборки и отладки в VS 2017
Здравствуйте! Я только начал изучать программирование. Установил VS 2017. ...

Visual Studio 2017 Компилятор
Почему у меня нет компилятора как на видео? Отсутствуют элементы управления...

Setlocale в visual studio 2017
Вчера пришлось перебить винду и с ней же переустановил visual studio, скачалась...

Отладка visual studio 2017
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; using namespace std; int...

10
Новичок
Модератор
1480 / 946 / 457
Регистрация: 17.07.2012
Сообщений: 4,888
Завершенные тесты: 3
06.01.2018, 01:49 #2
А что там за код вверху?
0
Fulcrum_013
Заблокирован
06.01.2018, 01:58 #3
То с юникодом глюк какой то скорее всего. Отображается символ аналогично англицкому а помечен как какой то другой. Оно такая дурь еще с 2013-ой тянется а может и раньше. Особенно проявляется в том что не видит переменные которые по виду совпадаюь. Перенаберешь - все Ок. Это точно не глюк с проверкой синтаксиса на лету. компилятор точно так же матерится.
1
AzoSdr
0 / 0 / 0
Регистрация: 27.08.2015
Сообщений: 18
07.01.2018, 14:49  [ТС] #4
там комментарий скрыт

Добавлено через 6 минут
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
То с юникодом глюк какой то скорее всего. Отображается символ аналогично англицкому а помечен как какой то другой. Оно такая дурь еще с 2013-ой тянется а может и раньше. Особенно проявляется в том что не видит переменные которые по виду совпадаюь. Перенаберешь - все Ок. Это точно не глюк с проверкой синтаксиса на лету. компилятор точно так же матерится.
Значит можно не заморачиваться по поводу этого? раньше работал на Eclipse, а тут на новой работе в обязаловку все используют VS
0
Fulcrum_013
Заблокирован
07.01.2018, 15:07 #5
Цитата Сообщение от AzoSdr Посмотреть сообщение
Значит можно не заморачиваться по поводу этого? раньше работал на Eclipse, а тут на новой работе в обязаловку все используют VS
Да такой глюк переодически вылазит. но лечится тем что перенабрать/скопипастить идентификатор. с дерективами препроцессора такой первый раз вижу
0
hoggy
Заблокирован
07.01.2018, 17:43 #6
Цитата Сообщение от AzoSdr Посмотреть сообщение
через раз выдается ошибка "Е0011 нераспознанная директива препроцессора"
это - не ошибка.
это - хрень собачья.

давайте моральный выхлоп компилятора.

зы:
владельцы русифицированной студии должны страдать.
0
AzoSdr
0 / 0 / 0
Регистрация: 27.08.2015
Сообщений: 18
07.01.2018, 18:57  [ТС] #7
Цитата Сообщение от hoggy Посмотреть сообщение
давайте моральный выхлоп компилятора.
нет выхлопа.. происходит сборка проекта и по идее должна появиться консоль, она появляется, её можно видеть но никак не открыть, на мышку не реагирует, альт+таб не переходит, тоесть висит где то в фоне.
жмешь шифт+ф5 и заново ф5 и все работает. поэтому и вопрос был. сносить VS и ставить заново или это нормально для неё, что смутило, так то, что такое поведение замечено только на данном куске кода.
0
AzoSdr
0 / 0 / 0
Регистрация: 27.08.2015
Сообщений: 18
07.01.2018, 21:02  [ТС] #8
В общем скорее всего разобрался. При неправильном обращении к map или действием с ним VS ругается на iostream. поскольку ошибка в неправильном обращении с map вылезет только при компиляции или сборке. как я понимаю.
0
Миниатюры
VS 2017 неадекватное поведение  
hoggy
Заблокирован
07.01.2018, 21:24 #9
Цитата Сообщение от AzoSdr Посмотреть сообщение
нет выхлопа.. происходит сборка проекта
прохладная история.

жмакайте на крестик,
что бы закрыть панель "список ошибок".

под ней скрывается панель "сборка проекта".

если была сборка,
значит там должен быть вывод компилятора.
0
AzoSdr
0 / 0 / 0
Регистрация: 27.08.2015
Сообщений: 18
07.01.2018, 23:36  [ТС] #10
спасибо, что ткнули носом где
Цитата Сообщение от hoggy Посмотреть сообщение
"сборка проекта"
находиться.
это к последнему скрину
Кликните здесь для просмотра всего текста


1>------ Сборка начата: проект: TestPlayRix, Конфигурация: Debug Win32 ------
1>main.cpp
1>c:\program files (x86)\microsoft visual studio\2017\professional\vc\tools\msvc\14.12.25827\include\xmemory0(945): error C2664: "std::pair<const _Kty,_Ty>::pair(std::pair<const _Kty,_Ty> &&)": невозможно преобразовать аргумент 2 из "double" в "int *const &"
1> with
1> [
1> _Kty=std::string,
1> _Ty=int *
1> ]
1>c:\program files (x86)\microsoft visual studio\2017\professional\vc\tools\msvc\14.12.25827\include\xmemory0(945): note: Причина: невозможно преобразовать "double" в "int *const "
1>c:\program files (x86)\microsoft visual studio\2017\professional\vc\tools\msvc\14.12.25827\include\xtree(774): note: выполняется компиляция ссылки на экземпляр шаблон функции "void std::_Default_allocator_traits<_Alloc>::construct<_Ty,std::basic_string<char,std::char_traits<char>,std::allocator<char> >,double>(_Alloc &,_Objty *const ,std::basic_string<char,std::char_traits<char>,std::allocator<char>> &&,double &&)"
1> with
1> [
1> _Alloc=std::allocator<std::_Tree_node<std::pair<const std::string,int *>,std::_Default_allocator_traits<std::allocator<std::pair<const std::string,int *>>>::void_pointer>>,
1> _Ty=std::pair<const std::string,int *>,
1> _Objty=std::pair<const std::string,int *>
1> ]
1>c:\program files (x86)\microsoft visual studio\2017\professional\vc\tools\msvc\14.12.25827\include\xtree(773): note: выполняется компиляция ссылки на экземпляр шаблон функции "void std::_Default_allocator_traits<_Alloc>::construct<_Ty,std::basic_string<char,std::char_traits<char>,std::allocator<char> >,double>(_Alloc &,_Objty *const ,std::basic_string<char,std::char_traits<char>,std::allocator<char>> &&,double &&)"
1> with
1> [
1> _Alloc=std::allocator<std::_Tree_node<std::pair<const std::string,int *>,std::_Default_allocator_traits<std::allocator<std::pair<const std::string,int *>>>::void_pointer>>,
1> _Ty=std::pair<const std::string,int *>,
1> _Objty=std::pair<const std::string,int *>
1> ]
1>c:\program files (x86)\microsoft visual studio\2017\professional\vc\tools\msvc\14.12.25827\include\xtree(962): note: выполняется компиляция ссылки на экземпляр шаблон функции "std::_Tree_node<_Ty,std::_Default_allocator_traits<_Alloc>::void_pointer> *std::_Tree_comp_alloc<_Traits>::_Buynode<std::basic_string<char,std::char_traits<char>,std::allocator<char>>,double>(st d::basic_string<char,std::char_traits<char>,std::allocator<char>> &&,double &&)"
1> with
1> [
1> _Ty=std::pair<const std::string,int *>,
1> _Alloc=std::allocator<std::pair<const std::string,int *>>,
1> _Traits=std::_Tmap_traits<std::string,int *,std::less<std::string>,std::allocator<std::pair<const std::string,int *>>,false>
1> ]
1>c:\program files (x86)\microsoft visual studio\2017\professional\vc\tools\msvc\14.12.25827\include\xtree(962): note: выполняется компиляция ссылки на экземпляр шаблон функции "std::_Tree_node<_Ty,std::_Default_allocator_traits<_Alloc>::void_pointer> *std::_Tree_comp_alloc<_Traits>::_Buynode<std::basic_string<char,std::char_traits<char>,std::allocator<char>>,double>(st d::basic_string<char,std::char_traits<char>,std::allocator<char>> &&,double &&)"
1> with
1> [
1> _Ty=std::pair<const std::string,int *>,
1> _Alloc=std::allocator<std::pair<const std::string,int *>>,
1> _Traits=std::_Tmap_traits<std::string,int *,std::less<std::string>,std::allocator<std::pair<const std::string,int *>>,false>
1> ]
1>d:\vc\testplayrix\testplayrix\testplayrix\main.cpp(49): note: выполняется компиляция ссылки на экземпляр шаблон функции "std::pair<std::_Tree_iterator<std::_Tree_val<std::_Tree_simple_types<_Ty>>>,bool> std::_Tree<std::_Tmap_traits<_Kty,int*,_Pr,_Alloc,false>>::emplace<std::basic_string<char,std::char_traits<char>,std::al locator<char>>,double>(std::basic_string<char,std::char_traits<char>,std::allocator<char>> &&,double &&)"
1> with
1> [
1> _Ty=std::pair<const std::string,int *>,
1> _Kty=std::string,
1> _Pr=std::less<std::string>,
1> _Alloc=std::allocator<std::pair<const std::string,int *>>
1> ]
1>d:\vc\testplayrix\testplayrix\testplayrix\main.cpp(49): note: выполняется компиляция ссылки на экземпляр шаблон функции "std::pair<std::_Tree_iterator<std::_Tree_val<std::_Tree_simple_types<_Ty>>>,bool> std::_Tree<std::_Tmap_traits<_Kty,int*,_Pr,_Alloc,false>>::emplace<std::basic_string<char,std::char_traits<char>,std::al locator<char>>,double>(std::basic_string<char,std::char_traits<char>,std::allocator<char>> &&,double &&)"
1> with
1> [
1> _Ty=std::pair<const std::string,int *>,
1> _Kty=std::string,
1> _Pr=std::less<std::string>,
1> _Alloc=std::allocator<std::pair<const std::string,int *>>
1> ]
1>Сборка проекта "TestPlayRix.vcxproj" завершена с ошибкой.
========== Сборка: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========



а если исправить этот код на тот, что и моего первого поста, где выходит ошибка про директиву, то во вкладке "сборка" и "порядок сборки", там пусто.
0
Миниатюры
VS 2017 неадекватное поведение  
AzoSdr
0 / 0 / 0
Регистрация: 27.08.2015
Сообщений: 18
17.01.2018, 20:57  [ТС] #11
вопрос закрыт. было обновление, больше глюка не замечается.
0
17.01.2018, 20:57
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.01.2018, 20:57
Привет! Вот еще темы с решениями:

SFML и Visual Studio 2017
Ребят, здравствуйте, не знаю ли можно здесь такое просить. Но может кто-нибудь...

Вызов консоли из формы в VS 2017
Возник вопрос как из формы вызвать консольное приложение. Есть много тем...

Запущен ли процесс? Visual Studio 2017
Я новичек ничего не понял.Может ктото научить в вк?хех...

Отладка Visual Studio 2017 community
Как в отладке сделать так что бы было видно весь массив? а то у меня видно его...


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

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

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