怎麼用c語言寫拷貝檔案,要求用readir和write

2022-03-18 17:50:16 字數 4173 閱讀 7545

1樓:未來需努力點綴

lz  你好

檔案的讀取和寫入應該是:

fread(void *buffer, size_t size,

size_t count, file *stream)

fwrite(const void *buffer, size_t

size, size_t count, file

*stream)

我只講解fread的四個引數 , fwrite是類似的:

buffer是一個任意型別的指標 , 你可以傳送一個陣列的首地址或者一個指標

size是buffer所指型別的長度 , 例如我這裡是char , 那就是char型別的長度: sizeof(char)

count就是每次讀入的最大數目(每一個數目的大小以size為準)

stream就是一個檔案指標

以下是測試**:

#include

#include

int main()

fpoperation = fread(buf, sizeof(char), 30, fp);

buf[fpoperation] = '\0';//因為讀取的時候, 沒有包含'\0', 需要自己加上, 否則會出錯

printf("已經讀取%d個字元\n", fpoperation);

fclose(fp);//關閉檔案指標

//檔案寫操作

if((fp = fopen("des.txt", "w+")) == null)

fpoperation = fwrite(buf, sizeof(char), fpoperation, fp);

printf("已經複製了%d個字元\n", fpoperation);

fclose(fp);//關閉檔案指標

return 0;

}執行結果:

會自動產生一個新文字des.txt  其中的內容就是src.txt的內容

起到一個簡單的複製功能

希望能幫助你哈

(附件是程式讀入資料的文字)

c語言中的read和write怎麼用?

2樓:

1、read和write是unix或者一些類unix系統,比如linux系統中使用的,稱為linux系統函式。這種函式只能在特定的作業系統下使用,可移植性差。fread和fwrite是c庫函式。

這種函式基本在任何作業系統都能使用,可移植性高。

2、基礎知識介紹只介紹linux系統函式,常用的有creat,open,close,read,write,lseek,access,一般用於檔案程式設計

3、如何使用談到如何使用就必須說到另一個知識,檔案描述符(file description),是一個非負數。

函式原型:int read(int fd, const void *buf, size_t length)

功能: 從檔案描述符fd所指向的檔案中讀取length個位元組到buf所指向的快取區中,返回值為實際讀取的位元組數

int write(int fd, const void *buf, size_t length)

功能: 把length個位元組從buf所指向的快取區中寫到件描述符fd所指向的檔案中,返回值為實際寫入的位元組數

例子:#define length 1024

#define buffes_size 1024

int n1, n2;

int fd1, fd2;

int buffer[buffes_size];fd1 = open( "hello1.txt", o_rdwr | o_creat, o_iruse | o_iwusr);

fd2 = open( "hello2.txt", o_rdwr | o_creat, o_iruse | o_iwusr);

n1 = read( fd1, buffer, length);

n2 = write( fd2, buffer, n1);

3樓:匿名使用者

那兩個函式是用在unix中的,在windows中對應的函式為fread和fwrite,具體用法參見函式原型…

4樓:匿名使用者

用法都差不多!你會其中之一都行了…

在c語言中要用到write和read函式要用到什麼標頭檔案

5樓:

#include

read/write函式操作開啟的裝置或檔案,從中讀取資料或向裡面寫入資料。

注:linux c程式設計。

6樓:月霜白露

#include // linux

為什麼c語言中read函式和write函式間要用lseek來調整讀取順序

7樓:匿名使用者

-由於程式在開啟檔案時檔案操作指標位於檔案起始位置,即偏移量0-讀取了1個字元的內容給變數c,檔案指標偏移量為1-這時如果想將c值寫到檔案開始位置,則需要移動檔案指標到檔案開始-於是lseek就是移動檔案當前指標的語句,它通知系統將檔案指標移動到從檔案開始位置(seek_ser)起的第0位元組

-這個程式比較奇怪,明明開啟檔案時選用了0_wronly引數,表明這個開啟是隻寫的,但上來就讀

c語言---如何複製任意檔案?

8樓:匿名使用者

c語言複製檔案主要由三種辦法,你可以根據自己的知識選用一個

方法1)利用c語言的二進位制讀寫函式

自己用fopen開啟原始檔和目標檔案,然後用迴圈讀寫實現複製

方法2)利用作業系統的檔案複製函式

例如windows就有如下api函式可以複製檔案

bool copyfile(

lpctstr lpexistingfilename, // name of an existing file

lpctstr lpnewfilename, // name of new file

bool bfailifexists // operation if file exists

);第一個引數是用來存放當前要處理檔案的路徑。

第二個引數是用來存放使用者指定的新路徑。

第三個引數它是用來判斷使用者指定的新路徑是否已經存在要存放的路徑,如果為true,則新路徑中已經存在該檔案了,該函式呼叫失敗,否則就呼叫成功。

方法3:c語言呼叫作業系統的copy命令

首先#include

然後 程式中 呼叫 system(「這裡寫 copy的完整命令」);

9樓:陽光上的橋

書上的txt就是記事本檔案,b就是其他一切檔案,函式就是那些,fopen,fread、fwrite,或者使用open、read、write。

另外,檔案複製可以使用system函式,例如:

system("copy c:\\abc.rmvb d:\\movies\\");

10樓:匿名使用者

b檔案 就是以二進位制形式複製檔案,這樣可以操作所有檔案

原則上,所有的檔案都應該以b形式來操作。之所以把txt檔案單列出來,是因為txt本身就是以ascii碼形式儲存的,你不管怎麼操作都不會損壞。

11樓:匿名使用者

因為書上的例子簡單,所以用txt檔案做講解

用fopen的時候用"b"的話,所有檔案都能複製的

相應的函式就是 fopen, fread, fwrite

c語言怎麼複製整個資料夾

12樓:匿名使用者

檔案複製可以通過一個簡單的io讀寫完成,資料夾的話應該是要呼叫windows的api來建立一個資料夾後把再把檔案複製過去。這個你要去檢視windows的api了。

13樓:匿名使用者

通過system()函式使用dos命令

14樓:匿名使用者

#include

#include

#include

#include

#include

int main()

while(ref==1024);}

c語言sin怎麼用,C語言sin怎麼用

c語言sin 用來計算引數x 的正玄值,然後將結果返回。返回 1 至1 之間的計算結果。例子 include main double answer sin 0.5 printf sin 0.5 f n answer 執行sin 0.5 0.479426c語言sin sin 原型 double sin...

用C語言編寫檔案為什麼檔案裡是亂碼

abcdefghijklmnopqrstuvwxyzpress any key to continue include include int main 問題 一 長度 不夠 問題二 沒有初始化 if fp fopen 字串.dat r null fread str,1,27,fp 問題三 是fre...

c語言編寫我愛你,用c語言寫我愛你用拼出來的

include int main include int main void include include main include int main 用c語言寫我愛你用 拼出來的 include int main int argc,const char argv unsigned char b ...