scanf как для символа, так и для целого числа - PullRequest
0 голосов
/ 27 мая 2020

Я пытаюсь использовать как входной символ, так и целое число. Но когда я использую cin >> ch >> val; для ввода данных, он работает. Но при использовании scanf ("% c% d", & ch, & val); он показывает меня ошибка времени выполнения.Что я могу сделать, чтобы избавиться от этой проблемы? Я хочу использовать scanf для более быстрого ввода. Вот мой частичный код:

 #include<bits/stdc++.h>
 using namespace std;
 int main()
 {
    int q;
    scanf("%d",&q);
    while(q--)
    {
        char ch;
        int val,in;
        //cin>>ch>>val;
        scanf("%c %d",&ch,&val);
        in=val;
        if(ch=='a'){
            //scanf("%d",&val);
            //update(1,0,m,++indx,val);
            printf("First Case\n");
        }else{
            //si(in);
            //if(in>tree[1]) printf("none\n");
            //else query(1,0,m,in);
            printf("Second Case\n");
        }
    }
}

1 Ответ

0 голосов
/ 27 мая 2020

Я запустил этот код! Он отлично работает для меня. Так что, вероятно, вы используете scanf в C ++ и забыли включить или, может быть, что-то еще в вашем коде. Можете поделиться полным кодом? Как вы упомянули, проблем с функцией scanf () нет. Вы можете использовать несколько входов, например scanf (% d% d% c% c, & a, & b, & c, & d);

#include <stdio.h>
int main()
{
    printf("Hello World");
    int q=1;
    while(q--)
    {
        char ch;
        int val,in;
        scanf("%c%d",&ch,&val);
        in=val;
        if(ch=='a'){
            printf("%d",val);
        }else{
            printf("%d",val);
        }
    }
    return 0;
}
...