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

Можно ли считать с консоли строку по шаблону? - C++

Восстановить пароль Регистрация
 
mhg
2 / 2 / 2
Регистрация: 21.04.2013
Сообщений: 185
17.04.2014, 22:24     Можно ли считать с консоли строку по шаблону? #1
например, scanf можно считать число и записать в переменную.
C++
1
2
int n;
scanf("%d", &n);
а если строка формата "command val", где val - любое число.
Нужно записать и команду и число.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
 Аватар для zss
5953 / 5558 / 1787
Регистрация: 18.12.2011
Сообщений: 14,204
Завершенные тесты: 1
17.04.2014, 22:45     Можно ли считать с консоли строку по шаблону? #2
C++
1
2
3
int n;
char command[64];
scanf("%s%d",command, &n);
Komi
 Аватар для Komi
6 / 6 / 2
Регистрация: 10.08.2012
Сообщений: 82
18.04.2014, 03:42     Можно ли считать с консоли строку по шаблону? #3
или
C++
1
2
3
int val;
string command;
cin >> command >> val;
mhg
2 / 2 / 2
Регистрация: 21.04.2013
Сообщений: 185
18.04.2014, 19:26  [ТС]     Можно ли считать с консоли строку по шаблону? #4
норм
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
char command[100000][8];
unsigned long int val[100000];
 
int main()
{
    int n,i;
 
    scanf ("%d",&n); 
    
    for (i=0; i<n;i++)
    {   
        scanf("%s %d",command[i], &val[i]);
    }
 
        for (i=0; i<n;i++)
    {   
        std::cout<<command[i]<<"  "<<val[i]<<std::endl;
    }
return 0;}
nmcf
4316 / 3737 / 1260
Регистрация: 14.04.2014
Сообщений: 14,664
18.04.2014, 19:28     Можно ли считать с консоли строку по шаблону? #5
Амперсанд убери, он для cout не нужен.
mhg
2 / 2 / 2
Регистрация: 21.04.2013
Сообщений: 185
18.04.2014, 19:45  [ТС]     Можно ли считать с консоли строку по шаблону? #6
а как мне изменить этот кусок кода, чтоб можно было ввести команды
сommand val
command2
, в этом варианте программа ждет после command2 число
nmcf
4316 / 3737 / 1260
Регистрация: 14.04.2014
Сообщений: 14,664
18.04.2014, 19:48     Можно ли считать с консоли строку по шаблону? #7
А что она должна ждать после команды? Отрегулируй форматную строку в scanf и вводи, что надо.
mhg
2 / 2 / 2
Регистрация: 21.04.2013
Сообщений: 185
18.04.2014, 19:49  [ТС]     Можно ли считать с консоли строку по шаблону? #8
можно конечно, записать строку с консоли целиком, а потом пройтись по ней sscanf()
а есть способ по быстрей?
nmcf
4316 / 3737 / 1260
Регистрация: 14.04.2014
Сообщений: 14,664
18.04.2014, 19:50     Можно ли считать с консоли строку по шаблону? #9
Изложи пошагово, что ты хочешь вводить.
mhg
2 / 2 / 2
Регистрация: 21.04.2013
Сообщений: 185
18.04.2014, 19:51  [ТС]     Можно ли считать с консоли строку по шаблону? #10
мне нужно, чтоб можно было вводить построчно команду+число или просто команду в цикле

типа

do 23
dont
dont
do 56
nmcf
4316 / 3737 / 1260
Регистрация: 14.04.2014
Сообщений: 14,664
18.04.2014, 19:56     Можно ли считать с консоли строку по шаблону? #11
Вводи команду отдельным scanf, потом проверяй какая команда введена и в зависимости от этого либо вводи число вторым scanf, либо переходи снова на ввод команды.
mhg
2 / 2 / 2
Регистрация: 21.04.2013
Сообщений: 185
18.04.2014, 20:11  [ТС]     Можно ли считать с консоли строку по шаблону? #12
Так?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
     char command[100000][8];
      int val[100000];
 
int main()
{
 
    int n;
 
    char do [3] ="Do";
    char dont [5] ="Dont";
 
    scanf ("%d",&n); 
    
    for (int i=0; i<n;i++)
    {   
        scanf("%s",command[i]);
 
        if (strcmp(command[i],do) == 0)
        {
            scanf("%d", &val[i]);
        }       
    }
return 0;}
nmcf
4316 / 3737 / 1260
Регистрация: 14.04.2014
Сообщений: 14,664
18.04.2014, 20:42     Можно ли считать с консоли строку по шаблону? #13
Синтаксически так. А по логике программы - тебе виднее. Получается, что если dont, то элемент массива оказывается не иинициализированным?
mhg
2 / 2 / 2
Регистрация: 21.04.2013
Сообщений: 185
18.04.2014, 20:58  [ТС]     Можно ли считать с консоли строку по шаблону? #14
да,но я к нему не обращаюсь
nmcf
4316 / 3737 / 1260
Регистрация: 14.04.2014
Сообщений: 14,664
18.04.2014, 20:59     Можно ли считать с консоли строку по шаблону? #15
Ну цель достигнута?
mhg
2 / 2 / 2
Регистрация: 21.04.2013
Сообщений: 185
18.04.2014, 21:02  [ТС]     Можно ли считать с консоли строку по шаблону? #16
да, теперь все збс
спасибо!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.04.2014, 06:09     Можно ли считать с консоли строку по шаблону?
Еще ссылки по теме:

Считать строку из консоли C++
Как считать строку с консоли? C++
C++ Считать строку из консоли

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

Или воспользуйтесь поиском по форуму:
Komi
 Аватар для Komi
6 / 6 / 2
Регистрация: 10.08.2012
Сообщений: 82
19.04.2014, 06:09     Можно ли считать с консоли строку по шаблону? #17
Цитата Сообщение от mhg Посмотреть сообщение
мне нужно, чтоб можно было вводить построчно команду+число или просто команду в цикле
если я тебя правильно понял, создай условия стрингу
C++
1
2
3
4
5
6
7
8
9
10
cin >> command;
bool flag;
do{
    flag=0;
    if(strcmp(command, "do")==0)
            {/*делать шнягу*/}
    else if(strcmp(command, "dont")==0)
            {/*делать другую шнягу, или не делать, пох*/}
    else flag = 1
   }while(flag=1);
Yandex
Объявления
19.04.2014, 06:09     Можно ли считать с консоли строку по шаблону?
Ответ Создать тему
Опции темы

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