回覆列表
  • 1 # 創業小白1988

    #include<iostream>#include<iostream>#include<fstream>using namespace std;int main(){ ofstream otxt("d:\\txt"); ofstream obin("d:\\bin", ios::binary); unsigned int c; for(c=0; c<256; c++) { otxt<<(char)c; obin<<(char)c; if((c + 1) % 10 == 0) { /* 寫檔案有文字格式和二進位制格式之分,ios::binary就是二進位制 它與文字格式的差別在於, 文字格式會增加一些格式上的資訊,比如換行"\n"用文字輸出是兩個位元組0x0Ah,0x0Dh,而如用二進位制輸出則是0x0Ah 故而 txt的位元組數 > bin的位元組數 */ otxt<<"\n"; obin<<"\n"; } } otxt.close(); obin.close(); ifstream itxt("d:\\txt", ios::binary); ifstream ibin("d:\\bin"); //讀檔案時最大的區別:文字方式在遇到第一個EOF字元(ASCII:26)時就結束,二進位制方式直到檔案結尾。 char ch; cout<<"txt as binary: "<<endl; while(itxt.get(ch)) { cout<<ch<<" ["<<(int)ch<<"] "; } cout<<"\n"<<endl; cout<<"bin as text: "<<endl; while(ibin.get(ch)) { cout<<ch<<" ["<<(int)ch<<"] "; } cout<<endl; itxt.close(); ibin.close(); return 0;}文字檔案本身跟二進位制檔案一樣,都是由0/1位組成,只是一般所說的文字檔案每8位(一位元組)必須是可顯示的ASCII碼範圍(0~127),而二進位制每8位任意(0~255)。寫檔案有文字格式和二進位制格式之分,ios::binary就是二進位制, 它與文字格式的差別在於,文字格式會增加一些格式上的資訊,比如換行"\n"用文字輸出是兩個位元組0x0Ah [10],0x0Dh [13]. 而如用二進位制輸出則是0x0Ah [10].而讀檔案時最大的區別:文字方式在遇到第一個EOF字元(ASCII:26)時就結束,二進位制方式直到檔案結尾。

  • 中秋節和大豐收的關聯?
  • 灰巖是什麼?