c中ofstream的write 的相關問題

時間 2022-03-08 15:50:17

1樓:難得當歌對酒時

第一種向檔案中寫入4個位元組(32位平台),第二種向檔案中寫入1個位元組。

並不是占用的位元組數越小越好,檔案是用來儲存資料的,能最好地儲存資料的大小就是最好的。

int a=100;中,a占用4個位元組,但是由於a較小,僅100那麼大,故乙個位元組就能儲存,它僅使用了這4個位元組中的最低位元組(小端模式),而第二種方式向檔案中寫入了a的最低位元組,故第二種方式也能在小端模式的機器上正確工作。

2樓:匿名使用者

第一種方式,在檔案中寫入了4個位元組(vc下,sizeof(int)==4)

第二種方式,在檔案中寫入了1個位元組(1個char佔1個位元組)占用位元組數的多少是與具體讀取的方式有關的,需要跟讀取的位元組數保持一致一般地說,大量寫檔案時,1個位元組比4個位元組占用的磁碟空間要少,但是能儲存的東西也會變少(1個位元組只有2^8)

3樓:

寫入後在檔案中所佔的大小不同,你可以分別執行這兩句語句,執行前在兩句後面分別加上同乙個寫入某個字串的的語句,看兩次寫入後的結果就知道了

c++中ofstream的write函式的用法?

4樓:匿名使用者

要想賦成空全零必須把字串的每一位都賦0

lastname[ 15 ]=「」

只是lastname[0]=0;

後面的14個字元是任意值。所以出亂碼是正常的。

如果想都成零得每一位都置0

c++檔案write函式問題

5樓:匿名使用者

編譯提示資訊應該告訴你了啊,write的第乙個引數必須是const char *型的,你要強制轉換一下

out.write((const char *)b,sizeof(a));

不過,結構中的指標成員寫入檔案是沒有含義的,因為指標的值是資料在此次執行時記憶體中的偏移,下次再從檔案中讀出來這個位址值就無效了.

6樓:匿名使用者

c++中write是用於向檔案中寫資料的函式。

函式原型:ostream& write (const char* s, streamsize n);

引數:s是資料來源指標,n表示位元組數

返回值:返回 ostream 物件的引用 (*this).

注意:使用需要#include

例項:#include // std::ifstream, std::ofstr

// copy a file

#include // std::ifstream, std::ofstream

int main ()

7樓:

#include

#include

using namespace std;

struct a

; typedef struct a a;

int main()

上邊這個程式編譯沒有錯誤了。

ostream& write ( const char* s , streamsize n );

這個是write的原型 第乙個引數必須是指向char型的指標,第二個是大小

你傳的是指向結構體的指標 所以不對

8樓:匿名使用者

out.write((char *)b,sizeof(a));

9樓:匿名使用者

你結構裡面還有指標,不能直接write,要一部份部份write

不然只寫了乙個指標的位址

c++中ofstream的write()函式,多種資料型別批量寫入的效率

10樓:匿名使用者

將不同資料型別的資料分別寫入這塊緩衝區,用write一次性寫入檔案。好比直接將結構體寫入檔案一樣。也就是對檔案的操作,這個可以滿足一般的要求。

或者使用記憶體對映檔案的方法,直接對映磁碟上一塊區域作為操作目標,此種情形對於大資料量的讀寫效率較載入檔案到記憶體的方式要高得多。

c++ write函式問題

11樓:夜神月

write(char*,length)是以二進位制位元組的形式寫入檔案的,而用記事本開啟的檔案是以gbk或者是unicode編碼格式解碼檔案內容的,

一般情況下,讀檔案時的編碼格式和寫入檔案的時的編碼格式一樣,才能顯示正確。

如果需要61029的顯示效果,不妨這樣

ofstream file("date.txt");

file<

12樓:

不能直接把乙個結構體轉換成char* 會出錯是正常的。要轉換結構體內部的變數。

c++中的ofstream是什麼意思,幹什麼用的,本人新手,讀程式遇到麻煩,求大俠指導

13樓:

ofstream在c++中 是檔案輸出流。用於檔案的輸出

一般寫在標頭檔案中 #include

14樓:

建議你看c++primer i/o章節 講解的相當詳細, 遇到問題 要先學會查資料 而不是知道 祝君加油。

15樓:匿名使用者

ofstream是乙個檔案輸入流的類,它是由ostream類派生而來的,看看檔案輸入輸出那章吧

c++ fstream write()的問題。

16樓:亞信小狼

修改如下,我就不驗證了,自己驗證一下。

string類裡面有乙個函式c_str().可以把string類的物件轉為char

#include

#include

#include

using namespace std;

int main()

outfile.write(str.c_str(),4);/*要求乙個字串型別char*,所以要轉換*/

cout<< str;

return 1;}

17樓:匿名使用者

outfile.write(str.c_str(), 4);

C 中的用法,C 中new的用法

除了樓上說的 還有 引用 和 取地址 的含義int a int b a 上述兩行語句執行完之後,a b表示同一個變數,對其中一個的操作相當於對另一個的操作 int a int b a 則b中儲存的是a的地址。對 b 的任何操作相當於對a的操作。 朱古力兜 表示引用,就是物件的另一個名字,例如 int...

關於C中的timer控制元件,C 中,關於Timer控制元件的說法正確的是 選2項

會完成。但是需要注意 1.system.windows.forms.timer 是單執行緒的,它只在ui執行緒中執行,定時精度約55ms,當前的事件沒處理完成時,下一次事件不會觸發 過久地處理會導致介面假死。2.system.threading.timer 是多執行緒的,觸發的事件在threadpo...

c 中rand 函式的範圍,c 中rand 函式的範圍 10

rand函式範圍 在某些平臺下 例如 windows rand max 只有 32768。如果需要的範圍大於 32768,那麼指定 min 和 max 引數就可以生成大於 rand max 的數了,或者考慮用 mt rand 來替代它。rand函式不是真正的隨機數生成器,而srand 會設定供ran...