[英]How can I get a hex value in c++ to a proper string?
我仍在為電影數據庫工作,我想向用戶展示他對文件的輸入。
但是,當我使用cout << lisafilm <<
它為我提供了十六進制值。 因此,我需要將十六進制轉換為字符串。
麻煩片段。
void sisend()
{
string nimi;
int aasta;
long int hinne;
string vaadatud;
ofstream lisafilm("andmebaas.txt", ios::app);
cout <<"Sisestage filmi nimi." << endl;
cin >> nimi;
cout << "Sisestage filmi aasta." << endl;
cin >> aasta;
cout << "Sisestage filmi hinne." << endl;
cin >> hinne;
cout << "Kas olete filmi juba vaadanud?" << endl;
cout << "Vastake 'Jah' voi 'Ei'" << endl;
cin >> vaadatud;
lisafilm<< nimi << " " << aasta << " " << hinne<< " " << vaadatud << endl;
lisafilm.close();
{
system("CLS");
int hex_str = lisafilm ;
cout << "Aitah kasutamast andmebaasi." << endl;
system("pause");
cin.get ();
}
main();
}
當我使用
cout << lisafilm
它為我提供了十六進制的價值
這是因為您試圖輸出一個ofstream
。 發生這種情況時,將調用operator void*
,產生與您的流相關的任意十六進制序列,但最終幾乎沒有用。
嘗試這個:
std::stringstream ss;
ss << std::hex << lisafilm;
const std::string s = ss.str();
lisafilm是流 ,不是字符串
如果要復制lisafilm到cout中,例如cout << lisafilm.rdbuf();
會達到目的(假設lisafilm是ostream或istream,而lisafilm的位置是文件的開頭。
您的代碼格式很差,我認為您發布的內容無法編譯。 如果您清理它,stackoverflow也許可以為您提供更多幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.