Непонятная логическая ошибка

428
28 ноября 2016, 18:36

Написал программу, которая при вводе цифры в виде названия выдаст саму цифру, и наоборот. К примеру, при вводе "one" программа выводит "1", при вводе "1" она выдает "one", и т.д. до девяти.

int main()
{
    vector<string> numb = {"zero", "one", "two", 
    "three", "four", "five", "six", "seven", "eight", "nine"};
    vector<int> val = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; 

   for (string num; cin >> num;)
{
   bool found = false;
   int b  = 0;
   for (int i = 0; i < numb.size(); ++i)
  {
       if (num == numb[i])
       {
           found = true;
           b = i;
           break;
       }
  }
       if (found)
            cout << val[b] << endl;
        else
     for (int a = 0; cin >> a;)
    {
        cout << numb[a] << endl;
        break;
    }

}
    return 0;
} 

И с буквенным вводом и численным выводом все в порядке, а вот с вводом числа и выводом "букв" работает через раз. Т.е я ввожу "1" и ничего не происходит - ни ошибки, ни чего-то иного. Затем я еще раз ввожу "1", и тогда программа выдает "one". Помогите понять, что не так, пожалуйста.

Answer 1

Вы уже прочли число, оно не совпало со строками. И вы опять пытаетесь его читать...

Замените блок else на приведенный:

    else
    {
        int a = stoi(num);
        cout << numb[a] << endl;
    }

И учтите, что у вас совершенно не обрабатываются ошибки! Что, если я введу "один" или 845? Подумайте над этим...

READ ALSO
При работе с файлами после каждой строки вставляются буквы М

При работе с файлами после каждой строки вставляются буквы М

После каждой строкий вставленой из файла в массив появляется лишняя строка состоящая из буквы М

468
Сборка проекта VS для гугл-тестов через CMake

Сборка проекта VS для гугл-тестов через CMake

Есть исходный код, есть тест, есть CMakeListtxt

433
Получить информацию о томах

Получить информацию о томах

Как узнать, существует тот или другой том? Например, мне нужно сделать так:

441
Почему не работает функция applyForce?

Почему не работает функция applyForce?

Начал изучать cocos2d-x,но столкнулся с тем, что у меня не работают функции applyForce(), apllyImpulse(), applyTorque()Пытался гуглить, но подобной проблему...

393