以下是c++代码
#include
#include
using namespace std;
int readcode(int n)
{
int sum=0;
for(int i=0;i<n;i++){
char c;
cin>>c;
sum+=(c-'0')*(1<<(n-i-1));
}
return sum;
}
int main()
{
string s;
while(1){
getline(cin,s);
if(s=="EOF") break;
int x;
while(x=readcode(3)){
while(1){
int y=readcode(x);
if(y==((1<<x)-1)) break;
cout<<s[y-x-1+(1<<x)];
}
}
cout<<"\n";
}
return 0;
}
我进行单步调试,第一次运行到换行那个地方都是对的,但是往后就运行不了了。程序会停在换行那个地方,不在进行第二次while循环,程序会崩溃。
下面是原题
题的输入和输出结果
我运行的结果
第一次输出是对的
第二次怎么都读不进去