Ⅰ 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新建一個文件;