未初始化的字符

时间:2013-03-10 03:15:18

标签: c++

我正在阅读一个C ++类,用于解析我的一本编程书籍中的CSV文件。我主要用C#编写工作,不经常与C ++代码交互。其中一个函数getline使用了一个未初始化的char变量,我对它是否是拼写错误感到困惑。

// getline: get one line, grow as needed
int Csv::getline(string& str)
{
    char c;

    for (line = ""; fin.get(c) && !endofline(c); )
        line += c;
    split();
    str = line;
    return !fin.eof();
}

fin是一个istream。我正在阅读的文档显示get (char& c);函数传递了一个引用,但是返回了流中的哪个char? c的初始值是多少?

1 个答案:

答案 0 :(得分:1)

c的初始值未定义,但c的初始值是什么并不重要,因为对get的调用将设置该值。由于||&&运算符的左侧后面有sequence point,我们知道get的所有side effects都已生效,{ {1}}会看到修改后的endofline