我的原型程序未按预期输出。我想在活动字符串中存储“ 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/

10-14 08:53