■要求定義
– ファイルやフォルダをコピーする
– cp (移動元ファイル名/フォルダ名) (移動先ファイル名/フォルダ名)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | #include <stdio.h> #include <stdlib.h> //汎用ライブラリ #include <string.h> int main(){ FILE *fpSrc, *fpDes, *fp; char ss[256], ch[50]; fpSrc = fopen("test.txt", "r"); fpDes = fopen("copy.txt", "w"); while(fgets(&ss, 256, fpSrc) != NULL){ printf("%s", ss); fwrite(ss, 1, 8, fpDes); } fclose(fpSrc); fclose(fpDes); printf("コピーしました。\n"); return 0; } |
$ ./dev
asdf
1234コピーしました。
■考察
あれ、コピー先のデータはバイナリデータで入ってるな。
調べてみると、fwriteはバイナリデータの書き込みとのこと。
fwriteではなく、fputs()に変更します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | int main(){ FILE *fpSrc, *fpDes; char ss[256]; fpSrc = fopen("test.txt", "r"); fpDes = fopen("copy.txt", "w"); while(fgets(&ss, 256, fpSrc) != NULL){ printf("%s", ss); fputs(ss, fpDes); } fclose(fpSrc); fclose(fpDes); printf("コピーしました。\n"); return 0; } |
コピーできました。
バイナリとは2進数データのこと。