ifstream的函数get读取下一个字符并将其存储在传递给函数的参数中。示例程序:
#include <iostream>
#include <fstream>
int main () {
std::ifstream is("input.txt"); // open file
char c;
while (is.get(c)) // loop getting single characters
std::cout << c;
is.close(); // close file
return 0;
}
这很好但我很困惑 c 如何通过函数 get 来改变,因为它没有通过它的指针传递。不久前我被告知,修改函数中的变量不能在函数外部改变它的值。这就是指针的全部目的,正确 - 操纵在函数外部创建的对象。那么如何在这里更改 c ?
我想这里有一些我不明白的东西?
答案 0 :(得分:2)
成员函数std::istream::get()
使用引用:
istream& get (char& c);
这意味着该函数直接访问作为参数传递的变量。
如果您不熟悉参考文献here,您可以了解更多信息。
答案 1 :(得分:1)
“那么如何在此处更改
c
?”
从reference documentation std::ifstream::get()
开始,使用char
变量引用传递的参数
basic_istream& get( char_type& ch );
所以它通过使用此引用来改变它。