我试图逐行读取C ++中的文件,并且已将每行读入向量。文件内容如下:
00001010
01101010
10101011
11110111
我正在尝试使用下面的比较来确定以00,01和10开头的行。
std::string opcode = GetInstruction().substr(0,2);
std::string fucode = GetInstruction().substr(7);
if(opcode == "01") {
AddInstruction(GetInstruction());
}
else if(opcode == "10") {
SubInstruction(GetInstruction());
}
else if(opcode == "00") {
LoadInstruction(GetInstruction());
}
似乎不起作用的部分是如果我尝试提取以11开头并以1结尾的行。为此我正在进行以下比较。
else if((opcode == "11") && (fucode == "1")){
std::cout<<GetInstruction();
PrintInstruction(GetInstruction());
}
GetInstruction从上面的二进制数序列返回一行,例如00001010.上面的代码块里面没有任何内容似乎运行,所以我猜我的比较中有些东西是关闭但我看不清楚如何。我已经尝试打印出fucode
的值,并为每行中的最后一个字符打印出正确的序列(即0 0 1 1)。
答案 0 :(得分:0)
我弄清楚问题是什么,但我无法解释原因。也许其他一些人可以扩展它。改变
else if((opcode == "11") && (fucode == "1")){
std::cout<<GetInstruction();
PrintInstruction(GetInstruction());
}
到
else if(opcode.compare("11") && fucode.compare("1")){
std::cout<<GetInstruction();
PrintInstruction(GetInstruction());
}
似乎解决了这个问题。