问题描述
我正在读取二进制文件* .dat,(8位无符号字符)
现在我想将其中的值作为小数传输,我该怎么办?
提前致谢。
ifstream fin(" usb1_8192_out.dat",ios :: binary | ios :: in);
if(b) !fin.is_open()){
cout<<""文件未打开。"<< endl;
}其他{
cout<<"文件已打开。"<< endl;
}
char ch;
int buffer [8192];
while(!fin.eof()){
fin.get(ch);
cout<< ch; //这里是输出二进制,如何处理
这个?
}
fin.close();
I am reading a binary file *.dat, (8-bit unsigned char)
Now I want to transfer the value in it as decimal, how can I do ?
Thanks in advance.
ifstream fin("usb1_8192_out.dat", ios::binary | ios::in );
if (!fin.is_open() ){
cout<<"File is not open."<<endl;
}else{
cout<<"File is open."<<endl;
}
char ch ;
int buffer[8192];
while( !fin.eof() ){
fin.get(ch);
cout<<ch; //here is output binary, how to deal with
this?
}
fin.close();
推荐答案
另请注意:您的阅读循环错误。 eof()是在读取循环后使用
已终止以找出它已终止的原因。在C ++中正确的方法是使用所有输入函数的返回值来判断读取操作是否有效或无效。 eof()只有在你尝试*后才会返回true,并且在文件结束时读取过去
while(fin.get(ch)) {
//用读取的东西做点什么
}
if(!fin.eof()){//不读,直到eof(),别的东西
//必定发生
cout<< 读取时出错 << endl;
//处理该错误;
}
-
Karl Heinz Buchegger
这篇关于如何将二进制文件中的值传递给十进制?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!