[英]std::getline() returning memory address when using cout
當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
為什么會這樣呢?
getline
函數本身從給定的第一個參數(代碼中的fileI
)返回輸入流。 結果保存在第二個參數中(代碼中的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;
std :: getline返回對輸入流的引用。 一個流不能直接發送到另一個流,但是可以將其轉換為void指針(直到c ++ 11)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.