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

Работа с векторами: названия цифр - C++

Восстановить пароль Регистрация
 
gusto_gummi
0 / 0 / 0
Регистрация: 07.10.2013
Сообщений: 35
27.04.2014, 12:18     Работа с векторами: названия цифр #1
Программа должна работать так вводишь число 2 она тебе выдает two;
У меня почему-то ничего не происходит
Вот код программы
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
#include <iostream>
#include <vector>
using namespace std;
inline void keep_window_open() { char ch; cin >> ch; }
int main()
{
    vector<string>numeres(10);
    numeres[0] = "null";
    numeres[1] = "one";
    numeres[2] = "two";
    numeres[3] = "three";
    numeres[4] = "four";
    numeres[5] = "five";
    numeres[6] = "six";
    numeres[7] = "seven";
    numeres[8] = "eight";
    numeres[9] = "nine";
    string num;
    for( int i = 0; i < numeres.size(); ++i)
    while( cin >> num)
    if ( num == numeres[i])
     cout << i <<numeres[i] << "\n";
    keep_window_open();
}
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
StailGot
27 / 22 / 6
Регистрация: 25.08.2013
Сообщений: 41
27.04.2014, 15:26     Работа с векторами: названия цифр #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
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
#include <iostream>
#include <string>
#include <vector>
 
using namespace std;
int main()
{
  vector<string>numeres( 10 );
  numeres[0] = "null";
  numeres[1] = "one";
  numeres[2] = "two";
  numeres[3] = "three";
  numeres[4] = "four";
  numeres[5] = "five";
  numeres[6] = "six";
  numeres[7] = "seven";
  numeres[8] = "eight";
  numeres[9] = "nine";
 
  size_t num;
 
  cin >> num;
  if (num <= 9 )
    cout << numeres[num] << "\n";
  else
    cout << "not found";
 
  cin.ignore( cin.rdbuf()->in_avail() );
  ::getchar();
}
gusto_gummi
0 / 0 / 0
Регистрация: 07.10.2013
Сообщений: 35
27.04.2014, 20:05  [ТС]     Работа с векторами: названия цифр #3
Можно узнать что значат строчки
size_t num; // что эта строчка делает?

cin >> num;
if (num <= 9 ) // зачем писать меньше или равно, чтобы до 9 включительно, своего рода проверка?
cout << numeres[num] << "\n";
else
cout << "not found";

cin.ignore( cin.rdbuf()->in_avail() ); // что эти сточки делают? они обязательны?
::getchar(); // что эти сточки делают? они обязательны?
}
StailGot
27 / 22 / 6
Регистрация: 25.08.2013
Сообщений: 41
27.04.2014, 21:10     Работа с векторами: названия цифр #4
Цитата Сообщение от gusto_gummi Посмотреть сообщение
Можно узнать что значат строчки
size_t num; // что эта строчка делает?
Используется для сохранения введенного числа.
size_t - тип числа, в основном используется для индексов в массивах. Если смущает, можно просто int.

Цитата Сообщение от gusto_gummi Посмотреть сообщение
if (num <= 9 ) // зачем писать меньше или равно, чтобы до 9 включительно, своего рода проверка?
Да. Введенное число будет преобразовано к size_t, т.к. он беззнаковый, а нумерация чисел в массиве идет с нуля, то остается проверить чтобы не было выхода за верхнюю границу.

Цитата Сообщение от gusto_gummi Посмотреть сообщение
cin.ignore( cin.rdbuf()->in_avail() ); // что эти сточки делают? они обязательны?
::getchar(); // что эти сточки делают? они обязательны?
Необязательно. Чтобы консоль сразу не закрылась.
gusto_gummi
0 / 0 / 0
Регистрация: 07.10.2013
Сообщений: 35
02.05.2014, 10:53  [ТС]     Работа с векторами: названия цифр #5
Спасибо!
Yandex
Объявления
02.05.2014, 10:53     Работа с векторами: названия цифр
Ответ Создать тему
Опции темы

Текущее время: 09:24. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru