【发布时间】:2020-09-14 22:33:45
【问题描述】:
我正在尝试同时使用输入字符和整数。但是当我使用 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++吗? -
也许你需要一个空格:
"%c %d". -
不行
-
@FiddlingBits 不是修辞。在
%d或%s或%f之前从来没有需要空格,但可能在%c或%[]之前需要空格,因为它们不会自动过滤前导空格。 -
@WeatherVane 非常感谢..它工作得很好..我用过“%c%d”