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

Ошибка при вызове в switch перегруженного оператора - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Удаление из текстового файла объекта http://www.cyberforum.ru/cpp-beginners/thread404840.html
Нужно реализовать функцию удаления из текстового файла простого объекта, который содержит поле типа char* и int. Каким образом в c++ можно удалять из файла? У меня из идей только Сишный chsize и стягивание файла. Что есть для этого в c++?
C++ Описать одну из сложных динамических структур данных Нужно написать программку... Тема: Линейный односвязный список. Добавление узла после заданного. P.S. на форуме искал посчет этого, ничего подходящего не нашел... http://www.cyberforum.ru/cpp-beginners/thread404837.html
Какой тип лучше всего подойдет для числа? C++
Есть число 2455903.795232, какой для него лучше всего тип переменной использовать?
обратить текст в строке C++
Здравствуйте. форумчане. есть простенькая задачка со строками имеется строка с текстом который заканчивается точкой. слова разделены одним или несколькими пробелами. Нужно обратить слова в тексте, не обращая саму строку Например строка. ремирпаН акортс. заранее благодарен.
C++ 2 наследника http://www.cyberforum.ru/cpp-beginners/thread404821.html
Парни просьба о помощи в мой листинг добавить еще 2 класса наследника, только не к обработчику. #include "stdafx.h" #include <iostream> #include <cstring> using namespace std; class Peer { char *info; int part_razdacha;
C++ Нужно исправить код в програме "выхода из лабиринта" Есть написанная программа поиск кратчайшего пути к выходу из лабиринта на C ++ Вот код: #include <iostream.h> #include <stdio.h> #include <io.h> #define MEN 2 #define LF 10 #define SPACE 32 #define ORIGINAL_MAZE 0 подробнее

Показать сообщение отдельно
maxis1523
1 / 1 / 0
Регистрация: 28.10.2009
Сообщений: 20

Ошибка при вызове в switch перегруженного оператора - C++

11.12.2011, 23:19. Просмотров 550. Ответов 4
Метки (Все метки)

есть перегруженный оператор:
C++
1
2
3
4
5
6
7
8
std::istream& operator>>(istream& is, diagram& dd)
{
    string kod;
    std::cout<<"Vvedite kod:"<<endl;
    getline(std::cin, kod);
    dd=diagram(kod);
    return is;
}
при вызове просто из main'а всё работает. однако ж, если его вызывать так:
C++
1
2
3
4
5
6
7
8
9
10
    bool exit = false;
    for (;;)
    {   std::cin >> choice; 
                switch(choice)
            {  ...
        case(3): std::cin>>diag; break;
                      ....
            }
        if (exit == true)   break;
    }
то компилируется без проблем, но в программе при выборе этого case возникает ошибка "Expression: string subscript out of range".
как исправить?

собственно проблема похоже в том, что при вызове из case программа игнорирует команду getline и доходит сразу до вызова функции diagram. почему?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru