我使用if
命令来决定两个输入A,B
的输出作为表
A B write_output
0 0 1 1
>0 0 0 1
0 >0 1 0
>0 >0 0 0
例如,如果A> 0且B = 0,那么我将输出值写为0和1.我正在使用if命令来实现它。但这不是我预期的表格。你能帮我解决一下吗?
这是我的代码
std::ofstream myfile;
myfile.open ("report.txt", std::ios::app);
if(A==0 & B==0)
myfile << 1 << "\t" <<1<<'\n';
else if (A>0)
myfile << 0 << "\t" <<1<<'\n';
else if (B>0)
myfile << 1 << "\t" <<0<<'\n';
else
myfile << 0 << "\t" <<0<<'\n';
myfile.close();
文本文件中的输出为
1 0
1 0
0 0
0 0
您可以看到第二列几乎为零值。这意味着如果(B> 0),代码不会转到其他地方。
答案 0 :(得分:4)
你的逻辑是有缺陷的。您需要在所有if分支中测试这两个条件。正如目前所写,你永远无法到达其他部分。
应该是:
if(A==0 && B==0)
myfile << 1 << "\t" << 1 << '\n';
else if (A>0 && B==0)
myfile << 0 << "\t" << 1 << '\n';
else if (A==0 && B>0)
myfile << 1 << "\t" << 0 << '\n';
else
myfile << 0 << "\t" << 0 << '\n';
此外,&
是按位AND;你希望&&
用于逻辑AND。