当cout语句执行时,它返回一个内存地址。
string data = "Test String ";
string info;
ofstream file("data.dat", ios::binary);
ifstream fileI("data.dat", ios::binary);
file << data;
file.close();
cout << getline(fileI, data); // returns a memory address
为什么会这样?
答案 0 :(得分:4)
getline
函数本身从给定的第一个参数(代码中的fileI
)返回输入流。结果保存在第2个参数中(代码中为data
)。因此,您需要先运行getline(fileI, data)
,然后输出字符串data
。
string data = "Test String ";
string info;
ofstream file("data.dat", ios::binary);
ifstream fileI("data.dat", ios::binary);
file << data;
file.close();
getline(fileI, data);
cout << data;
return 0;
答案 1 :(得分:1)
std :: getline返回对输入流的引用。流不能直接发送到另一个流,但可以转换为void指针(直到c ++ 11)。