Ⅰ c++,二进制文件输出怎么写
代码已经改正,修改了几个地方,对照自己的代码看一下,如下:
#include<iostream>
#include<cmath>
#include<fstream>
#include<vector>
using namespace std;
class Book{
public:
char shmi[51];//不能用string,别问,我不知道
char zuzh[51];
double jige;
};
int main(){
int n;
cin>>n;
Book bk[n];//数组不香吗?
ofstream cout1("bookinfo.dat",ios::out|ios::binary);//
int i=0;
while(cin>>bk[i].shmi >>bk[i].zuzh >>bk[i].jige){
i++;
if(i>=n)break;
}
cout1.write((const char *)bk,sizeof(bk));
cout1.close() ;
/*==========以上内容应该实现了写入这些书的信息============*/
Book bk2[n];
ifstream cinn("bookinfo.dat",ios::in|ios::binary);//没错,ctrl+C+V过来的
cinn.read(( char *)bk2,sizeof(bk2));//这里不能写const
for(int i=0;i<n;i++){//哎,一不小心又写了for了
cout<<bk2[i].shmi <<" "<<bk2[i].zuzh <<" "<<bk2[i].jige <<endl;
}
cinn.close() ;
return 0;
}
运行截图:
Ⅱ 如何用CMD将16进制的文本输出成二进制的文件
你这是想把十六进制的文本转为真正的二进制文件。
你得有个工具能写入任意二进制数,windows下现成的工具极少。
网上有个能够用cscript存二进制文件的例子可以参考,低版本windows自带的的debug,可以生成二进制文件,但需要有点汇编语言的能力。
如果windows带有.net framework可以自己写一个转换程序.
或者使用十六进制编辑器winhex就可以反存回去。
如果不会写程序就得使用linux命令。下载cygwin,里面有xxd既可以正向查看,还可以反向恢复。
Ⅲ 我用c4droid写了一段代码,输出为二进制文件后,有什么方法可以从另一
#include写复二进制文制件写二进制文件应该使用ofstream类,文件的打开模式一定要是binary,如果传入的不是binary,文件将以ASCII方式打开。下面是示例代码,用于写入文件。std::ofstreamfout("a.dat",std::ios::binary);intnNum=20;std::stringstr("Hello,world");fout.write((char*)&nNum,sizeof(int));fout.write(str.c_str(),sizeof(char)*(str.size()));fout.close();而写文本文件则比较简单,如下:std::ofstreamfout("b.dat");intnNum=20;std::stringstr("Hello,world");fout<
Ⅳ 怎么打开二进制文件
问题一:如何查看二进制文件的文件内容? 10分 用UltraEdit这个软件
问题二:UltraEdit 怎么看二进制文件 【◆】【你好】【◆】
.
UltraEdit提供了这样的功能,它能够显示二进制文件的内容,即将二进制代码显示为十六进制。
.
按Ctrl+H键或者有一个二进制皮返的图标.16进制 其实就是2进制。
16进制 就是 为了 输入和输燃渣饥出 方便和简单
你只要 把 1 看成 0001 把 F 看成 1111
.
如果你认为我的解答对解决你的问题有帮助.请点击我的回答下方【选为满意答案】按钮.
问题三:如何查看txt文件的二进制文件 c++ 可以读取二进制文件即.bin形式的 FILE * fb ; fb = fopen(文件路径/文件名.bin, rb);
fread(H_imag, sizeof(float), len, fb);
fclose(fb); len是数据的长度
问题四:C++中怎么打开一个二进制文件 估计你对二进制文件概念搞错了,你现在写的是二进制文件(就是计算机内部的格式),这好比电报码不经过译码你是看不懂的。我们能看懂的无论是10进制,16进制,2进制数其实都是从计算机内部的格式(2进制的码)转换出来的文本( 包括楼上说看到四字节05 00 00 00实际上也是用查看工具转出的16进制文本),因此,能看到的2进制数101,实际上是个“101”文本,并不是真正的2进制的码。如果你要保存5的 “二进制码” ,要通过文本查看器就能看到“101”,你实际上要写5的“二进制文本”而不是写“二进制码”。
问题五:在c语言中如何打开二进制文件 不知lz希望得骇什么
二进制的意思是按照数据的原有二进制值写入
与文本模式的差别是不处理行尾
“china” 的 ASCII 就是这样子,还能是什么
问题六:如何把EXE文梁态件打开成二进制文件 您好。
将其导入ultra edit,里面有导出二进制文件选项
有各最简单的方法,windows其实自带了一个这样的工具exe2bin.exe在运行里输入cmd打开msdos方式,里面输入
c:\>exe2bin /?
就可以查看一下这个命令的方式,比如
c:\>exe2bin c:\a.exe b.bin
再用记事本查看就可以了,不过这种方法只能对exe文件有效。
如果还有问题,可以继续追问,感谢。
问题七:如何查看二进制文件的内容 用WINHEX之类的二进制查看软件打开文件即可看到二进制文件的内容。
问题八:如何快速读取二进制文件 Visual C++
如何:读取二进制文件
下面的代码示例演示如何从文件中读取二进制数据。使用了 System.IO 命名空间中的两个类:FileStream 和 BinaryReader。FileStream 表示实际的文件。BinaryReader 为允许二进制访问的流提供接口。
下面的代码示例使用由如何:编写二进制文件中的代码创建的称为 data.bin 的文件。
示例
binary_read.cpp
pile with: /clr
#using
using namespace System;
using namespace System::IO;
int main()
{
String^ fileName = data.bin;
try
{
FileStream^ fs = gew FileStream(fileName, FileMode::Open);
BinaryReader^ br = gew BinaryReader(fs);
Console::WriteLine(contents of {0}:, fileName);
while (br->BaseStream->Position BaseStream->Length)
Console::WriteLine(br->ReadInt32().ToString());
fs->Close( );
}
catch (Exception^ e)
{
if (dynamic_cast(e))
Console::WriteLine(File '{0}' not found, fileName);
else
Console::WriteLine(Exception: ({0}), e);
return -1;
}
return 0;
}
补充
手上的一个VB项目(过程中发现,.Net果然是好啊),需要在一个ActiveX中实现HTTP下载功能,我是采用InternetreadFile这个API来实现,一开始的代码我是这么写的
Function Getdownload(sUrl As String) As boolen
Dim s As String
Dim hOpen As Long
Dim hOpenUrl As Long
Dim bDoLoop As Boolean
Dim bRet As Boolean
Dim sReadBuffer As String * 2048
Dim lNumberOfBytesRead As Long
hOpen = InternetOpen(scUserAgent, INTERNET_OPEN_TYPE_PRECONFIG, vbNullString, vbNullString, 0)
hOpenUrl = InternetOpenUrl(hOpen, sUrl, vbNullString, 0, ......>>
问题九:c++为什么无法打开二进制文件 添加位ios::in或ios::out。即fstream file(data.dat,ios::binary|ios:in);
问题十:linux 怎么看完二进制文件 查看二进制文件,用od或hexmp命令。
$ od -tx1 -tc -Ax binFile000000 61 62 63 64 65 31 32 33 34 35 61 62 63 64 65 31 a b c d e 1 2 3 4 5 a b c d e 1000010 32 33 34 35 61 62 63 64 65 31 32 33 34 35 61 62 2 3 4 5 a b c d e 1 2 3 4 5 a b000020 63 64 65 31 32 33 34 35 0a c d e 1 2 3 4 5 \n000029
-tx1选项表示将文件中的字节以十六进制的形式列出来,每组一个字节(类似hexmp的-c选项)
-tc选项表示将文件中的ASCII码以字符形式列出来(和hexmp类似,输出结果最左边的一列是文件中的地址,默认以八进制显示)
-Ax选项要求以十六进制显示文件中的地址
Ⅳ 请教,怎么用JAVA来读取二进制文件并输出文件内容
Java读取二进制文件,以字节为单位进行读取,还可读取图片、音乐文件、视频文件等,回
在Java中,提供了四答种类来对文件进行操作,分别是InputStream OutputStream Reader Writer ,前两种是对字节流的操作,后两种则是对字符流的操作。
示例代码如下:
public static void readFileByBytes(String fileName){
File file = new File(fileName);
InputStream in = null;
try {
System.out.println("一次读一个");
// 一次读一个字节
in = new FileInputStream(file);
int tempbyte;
while ((tempbyte = in.read()) != -1) {
System.out.write(tempbyte);
}
in.close();
} catch (IOException e) {
e.printStackTrace();
return;
}
Ⅵ C语言输出二进制文件的问题
1、打开编译器,Ctrl+N新建一个文件;