大一学校给的题,问一下哪里错了

作为ACMer,想必大家都知道,我们的程序输入有一个叫做缓冲区的东西,可以将我们的输入顺次存起来,再依次取出来进行处理,现在我们就来模拟一下这个过程

Input

输入分两种情况 : 1. 输入单词 In 然后输入一个字符表示要存入缓冲区的输入字符

2.输入单词 Out

InOut的数量都在4000000内,输入到文件尾 

Output
在输入单词Out的时候输入从缓冲区取出的字符,一个字符取出后就从缓冲区中消失。
#include <bits/stdc++.h>

using namespace std;

int main()
{
vectorq;
int c=4000000;
for(int i=1;i<=c;i++)
{
string op;
scanf("%s",&op);
if(op=="In")
{
string a;
scanf("%s",&a);
q.push_back(a);
}
if(op=="Out")
{
cout<<q.front()<<endl;
}
}
return 0;
}

vectorq;不是这样定义的,你把你的代码块插入,不然看不到

img


不能用scanf直接给string输入值
题目是让输入字符