我的原型程序未按预期输出。我想在活动字符串中存储“ 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;
}
我的textfile(text.dat)只是
Y
我的预期输出是Y
实际输出NA
不知道为什么会这样
最佳答案
了解分配(=
)和相等性测试(==
)之间的区别很重要。
更改:
if (testChar = 'a')
至
if (testChar == 'a')
对于其他情况也是如此。
请注意,如果在启用警告的情况下进行编译,则编译器将报告这些简单的错误。
关于c++ - C++程序无法使用.get输出预期的结果,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25857590/