C ++程序未使用.get按预期输出

时间:2014-09-15 22:00:16

标签: c++ file get output

我的原型程序没有按预期输出。我想存储' 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

不确定为什么会发生这种情况

1 个答案:

答案 0 :(得分:3)

了解分配(=)和测试平等(==)之间的区别非常重要。

变化:

if (testChar = 'a')

if (testChar == 'a')

同样适用于其他案例。

请注意,如果编译时启用了警告,编译器就会报告这些简单的错误。