簡體   English   中英

使用cout時std :: getline()返回內存地址

[英]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;

另請參閱getline文檔

std :: getline返回對輸入流的引用。 一個流不能直接發送到另一個流,但是可以將其轉換為void指針(直到c ++ 11)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM