首页 > 解决方案 > scanf 用于字符和整数

问题描述

我正在尝试同时输入字符和整数。但是当我使用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");
        }
    }
}

标签: c++cformatscanf

解决方案


我运行了这段代码!这对我来说可以。因此,您可能在 C++ 中使用 scanf 并忘记包含,或者可能是您的代码中的其他内容。你能分享完整的代码吗?正如您所提到的, 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;
}

推荐阅读