C 讀寫檔案的二進位制流轉為字串被截斷的問題

2021-09-28 06:17:14 字數 976 閱讀 8760

在寫完程式時候執行中斷發現讀取出來的檔案流放進char後長度只有幾個位元組,但是可以將這個cha重新寫成檔案

cfile file;  

char* imgbuf1= null; //存放的char

imgbuf1= new char[lengthf1]; //重定義char長度為檔案流長度

memset(imgbuf1, 0, sizeof(char) * lengthf1);

file.read(imgbuf1,lengthf1);//讀取完之後imgbuf1列印會截斷,中斷也只能看到幾個位元組

file.close();

查閱資料後發現,讀取出來的二進位製流會存在\0,\0在字串中表示結束符.所以當呼叫列印字串的函式或者計數的函式,都會從\0這裡截斷,只會列印或者計數\0前面的位元組,所以當需要使用存放檔案流的char時後中間不能再進行字串的轉換

如果需要將存放檔案流的char和其他字串合在一起.不能使用strcpy和strcat,要重新將其他字串放乙個char裡,劃分乙個長度更大的char使用memcpy將兩個char合在一起.如下就在檔案流的前面加上"檔案流是:"

char strfileconnet1 [1024] = "檔案流是:";

int len1 = strlen(strfileconnet1); //純字串的使用strlen

const int lenstr = lengthf1 + len1;

imgmsg = new char[lenstr];

memcpy(imgmsg,strfileconnet1, len1);

memcpy(imgmsg+len1,imgbuf1,sizeof(imgmsg));

C 讀寫二進位制檔案

摘要 使用c 讀寫二進位制檔案,在開發中操作的比較頻繁,今天有幸找到一篇文章,遂進行了一些試驗,並進行了部分的總結。使用c 操作檔案,是研發過程中比較頻繁的,因此進行必要的總結和封裝還是十分有用的。今天在網上找到一篇,遂進行了部分的試驗,以記之,備後用。include 寫二進位制檔案 寫二進位制檔案...

c 讀寫二進位制檔案

最近需要用到二進位制檔案讀寫的相關操作,這邊稍微總結下,首先二進位制檔案的讀寫可以使用fread和fwrite來處理。fread函式原型 size t cdecl fread void size t,size t,file 第乙個引數表示的是快取,第二個引數表示的是基本單元的大小,第三引數表示的是基...

C 二進位制檔案讀寫

今天終於弄明白怎樣使用c 讀寫二進位制檔案了。要讀取檔案必須包含標頭檔案,這裡包含了c 讀寫檔案的方法。可以使用fstream類,這個類可以對檔案進行讀寫操作。1 開啟檔案。可以寫檔案了,讀檔案就好辦多了。讀檔案需要用到read函式。其引數和write大致相同,read const char ch,...