檔案逆順輸出到新檔案 三種方案

2021-09-30 09:26:02 字數 2025 閱讀 5495

方法一:利用遞迴

/*

功能:檔案以行為單位,逆順輸出到新檔案

示例:file1.txt為:

1234

56要求逆順後輸出到檔案file2.txt,結果為:

5634

12*/#include #include // 遞迴讀取檔案

void doread(file *fp1, file *fp2, int next)

; if(next && fgets(buf, 1024, fp1) != null)

doread(fp1, fp2, next);

else if(next)

next = 0; // 讀到檔案尾

fwrite(buf, strlen(buf), 1, fp2); // 寫入新檔案

}int run(char *infile, char *outfile)

int main()

方法二:利用鍊錶(頭插入法)

考慮到逆序的思想就是後進先出,這與的功能非常相似,於是產生了下面這種解法:

/*

功能:演示了將檔案中的內容以行為單位,逆順輸出到另一檔案

思路:考慮到後進先出,採用類似於棧的思想

*/#include #include #include typedef struct _tagnode

node;

node* insert(node *head, char *line) // 頭插法建立鍊錶

void display(node *head)

}// 將檔案中的內容以行為單位逆順輸出到另一檔案

void reverse(file *fp1, file *fp2)

; node *head = null, *t = null;

// 讀檔案,建立鍊錶

while(fgets(line, 1024, fp1) != null) // fgets缺省會將換行符讀入到line中

// display(head);

// 順序讀取鍊錶,輸出內容到檔案,並釋放結點

while(head) }

int main()

reverse(fp1, fp2); // 將檔案中的內容以行為單位逆順輸出到另一檔案

fclose(fp1);

fclose(fp2);

return 0;

}

方法三:利用記憶體對映

/*

功能:利用記憶體對映將檔案中的內容以行為單位,逆順輸出到另一檔案

說明:如果最後一行無換行符,在輸出檔案中會被新增上去(否則會與第二行連在一起)

*/#include /* for mmap and munmap */

#include /* for open */

#include /* for open */

#include /* for open */

#include /* for lseek and write */ }

int main(int argc, char **ar**)

fd = open(ar**[1], o_rdonly, s_irusr | s_iwusr);

fd_out = open(ar**[2], o_wronly | o_creat, s_irusr | s_iwusr);

if(fd == -1 || fd_out == -1)

flength = lseek(fd, 0, seek_end); // 求得檔案長度

map_private, //不允許其它程序訪問此記憶體區域

fd, 0);

close(fd);

close(fd_out);

return 0;

}

GitLab上傳更新檔案

gitlab提交 existingfolder 進入準備提交的資料夾裡面,執行下面 如果已經提交之後第二次提交,需要先執行gitpush u origin master將 提交到庫裡面,然後在執行下面的 user.name後面跟的是當前使用者的名字 user.email後面跟的是當親使用者的郵箱 h...

shell獲取最新檔案

背景 交易所每天發檔案給券商,但是字首一樣,名字字尾為月日,但是節假日不一定在交易日生成某些檔案,所以需要獲取同名字最新生成的檔案 引數說明 a 顯示所有檔案及目錄 開頭的隱藏檔案也會列出 l 除檔名稱外,亦將檔案型態 許可權 擁有者 檔案大小等資訊詳細列出 r 將檔案以相反次序顯示 原定依英文本母...

無重新整理檔案上傳

ajax level 2 標準 可以對檔案操作,但是只支援新的瀏覽器 不相容低版本的ie 是h5標準 注意事項 表單大小 單個檔案上傳大小 實操 寫乙個form表單,但是需要注意的是,不為form表單設定 enctype屬性 為上傳的按鈕繫結乙個點選事件,完成ajax提交上傳檔案 利用formdat...