我怎么能得到一个十六进制值在c++到一个适当的字符串

How can I get a hex value in c++ to a proper string?

本文关键字:一个 字符串 c++ 怎么能 十六进制      更新时间:2023-10-16

我仍然在为电影数据库工作,我想向用户展示他在文件中输入的内容。

然而,当我使用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可能会帮助你更多。

相关文章: