關於vc6 0 c 檔案讀寫的問題

2023-09-03 20:07:10 字數 1507 閱讀 3183

1樓:匿名使用者

/ path_1和path_2為原始檔的路徑 和 目標檔案的路徑 ,對應的檔案路徑你修改下就ok了。

#include

#include

#include

#define path_1 "d:\\

#define path_2 "d:\\

int main()

file *pf1, *pf2;

char* pbuf = null;

pf1 = fopen(path_1, "rb");

pf2 = fopen(path_2, "wb");

if (pf1 !=null &&pf2 !=null)

fseek(pf1, 0, seek_end);

int ilen = ftell(pf1);

fseek(pf1, 0, seek_set);

pbuf = char* )malloc (sizeof(char) *ilen + 1));

memset(pbuf, 0, ilen + 1);

if (pbuf !=null)

fread(pbuf, sizeof(char), ilen, pf1);

fwrite(pbuf, sizeof(char), ilen, pf2);

fclose(pf1);

pf1 = null;

fclose(pf2);

pf2 = null;

return 0;

c++檔案讀寫的一個小問題

2樓:匿名使用者

看你的程式似乎是要把010110111這個“數”一位一位地存到bianma中, 如果是這樣, 那麼這個程式有幾個問題:

檔案是流的方式開啟的, 就是說檔案內容如何, 取決於你的程式的解讀。 010110111對程式而言,更像是字串, 你按int讀取, int有範圍限制, 轉換後, 被讀成1011011, 前面的0被捨去, 後面的1被捨去, for迴圈其實只讀了1次。 因此最起碼, 你的數字直接應該用空格分開,即:

0 1 0 1 1 0 1 1 1 那麼for迴圈會執行9次, 分別讀入bianma[0]~bianma[8]。

對流的讀取操作, 一般應該是while(!這種方式的, 很少用for, 因為一般是讀到流的尾巴, 自然結束。 即使要記數, 也是while裡面作的。

對檔案的處理, 應該盡量都按字串按行讀取, 然後再作處理, 轉換也好, 還是其它的轉存。 這樣最安全。 因此要事不該格式, 你應該:

int bianma[500];

char sline[128] =0";

ifstream inf("new_")

if (!inf)

while (!

3樓:匿名使用者

我想問這是怎麼通過編譯的。x的定義在**。

4樓:匿名使用者

這個程式的定義是什麼,而且那個數你再看看是不是超出定義的範圍了。

c語言關於檔案的讀寫,為什麼輸出到檔案上得到亂碼

windows下,編碼問題也有可能 vc 6.0以上不存在這種可能 gcc編譯器,輸入 出預設utf 8,所以在windows下有問題,新增 finput charset gbk fexec charset gbk 也有可能是輸出檔案編碼問題,就是windows的記事本,不支援輸出的檔案的編碼 ma...

很簡單的C檔案讀寫問題,但是總是出錯

注意,a.txt中 後不要有空格 include include include include include using namespace std void main vectorvec1 vectorvec2 char buff 100 memset buff,0,sizeof buff w...

誰來幫我解決關於VC6 0的問題 急

a for int i 1 i 10 i for int j 1 j 10 j b 使用stl的sort c char buf1 128 buf2 128 cin buf1 cin buf2 char p new char strlen buf1 strlen buf2 strcpy p,buf1 ...