我的原型程序没有按预期输出。我想存储' Y'在活动字符串中,但它会存储NA。
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
int main()
{
ifstream inFile;
char testChar;
string active;
inFile.open("test.dat");
inFile.get(testChar);
if (testChar = 'N')
{
inFile.get(testChar);
if (testChar = 'A')
active = "NA";
else
active = "N";
}
else
active = "Y";
cout << endl << active << endl << endl;
system("pause");
return 0;
}
我的文本文件(text.dat)只是
Y
我的预期输出为 Y
实际输出 NA
不确定为什么会发生这种情况
答案 0 :(得分:3)
了解分配(=
)和测试平等(==
)之间的区别非常重要。
变化:
if (testChar = 'a')
要
if (testChar == 'a')
同样适用于其他案例。
请注意,如果编译时启用了警告,编译器就会报告这些简单的错误。