回覆列表
  • 1 # 何以笙丶丶

    #include

    #include

    #include

    using namespace std;

    int main()

    {

    ofstream otxt("d:\\txt");

    ofstream obin("d:\\bin", ios::binary);

    unsigned int c;

    for(c=0; c

    {

    otxt

    obin

    if((c + 1) % 10 == 0)

    {

    /*

    寫檔案有文字格式和二進位制格式之分,ios::binary就是二進位制

    它與文字格式的差別在於, 文字格式會增加一些格式上的資訊,比如換行"\n"用文字輸出是兩個位元組0x0Ah,0x0Dh,而如用二進位制輸出則是0x0Ah

    故而 txt的位元組數 > bin的位元組數

    */

    otxt

    obin

    }

    }

    otxt.close();

    obin.close();

    ifstream itxt("d:\\txt", ios::binary);

    ifstream ibin("d:\\bin");

    //讀檔案時最大的區別:文字方式在遇到第一個EOF字元(ASCII:26)時就結束,二進位制方式直到檔案結尾。

    char ch;

    cout

    while(itxt.get(ch))

    {

    cout

    }

    cout

    cout

    while(ibin.get(ch))

    {

    cout

    }

    cout

    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)時就結束,二進位制方式直到檔案結尾。

  • 中秋節和大豐收的關聯?
  • 為什麼年齡老了反而更怕死,怕生病?