簡體   English   中英

如何在C ++中將十六進制值轉換為正確的字符串?

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

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