見出し画像

【C言語】テキストファイルをコピーするプログラムを作成してみた!

こんにちは、tangoです。
今回なんですが、絶賛勉強中のC言語で簡単なプログラムを作成しました。
内容としましては、あるテキストファイルの内容を別のテキストファイルにコピーするプログラムです。
それでは、さっそく紹介していきたいと思います。

★処理の流れ

1.今回は、test.txtの中身をコピーしていきたいと思います。

画像6

画像2


2.文字コードの設定をします。
詳しい詳細は、コマンド集・用語集(随時更新)で紹介しているのでそちらを参考にしてください。

画像6


3.backup.cをコンパイルします。
※コマンド:gcc backup.c

画像6


4.先程のフォルダに戻るとa.exeが作成されています。
もし、作成されていなかったらセキュリティがかかっている可能性がありますので、【Windows版】コマンドプロンプトでC言語をコンパイルしてみたの『ウイルス対策ソフトの無効化』を参考にしてみてください。

画像6


5.先程作成されたa.exeを実行していきます。
コマンド:a か a.exe

画像6


6.コピー元のテキストファイルを選択します。

画像7


もし、選択したテキストファイルがない場合は、再度入力します。

画像8


今回は、test.txt をコピー元に選択します。

画像9


7.コピー先のテキストファイルを選択します。
※既存のテキストファイルを使う場合は、前の内容が消えてしまうので注意してください。

画像10


今回は、text.txt をコピー先に選択します。

画像11

画像12


8.先程のフォルダに戻り、text.txt が作成されているか確認します。

画像13

9.コピー元の内容が、コピー先に反映されているか確認します。
無事に反映されました。

画像14


以上があるテキストファイルの内容を別のテキストファイルにコピーする流れになります。


★ソースコード

次にソースコードの紹介です。

# include<stdio.h>
# include<stdlib.h>
# define a 100
# define c 1000

  //構造体
  typedef struct{
  char name[a];
  int namber;
  }worker;

int main(){
  int b = 0;
  char text0[a], text1[a], text2[a], buf[c];

  FILE *fp;
  FILE *output_txt;

  //メモリの確保
  worker *data = malloc(b * sizeof(worker));


  //BACKUPファイルを探す
  for(;;){
      printf("どの.txtをBACKUPしますか?\n");
      printf("※拡張子まで含めてください。\n");
      scanf("%s", text0);
  
  
  if((fp = fopen(text0, "r")) == NULL){
      printf("お探しのテキストがありません。\n");
      printf("\r\n");
      continue;
  }else{
      printf("テキストを発見しました\n\n");
      break;
  }
  }

  //BACKUP用のファイル生成して、BACKUP用のテキストファイルに反映
  printf("BACKUP用のテキストエディタ名を入力してください!\n");
  printf("※新規作成もできます\n");
  scanf("%s", text1);

  if((output_txt = fopen(text1, "w")) == NULL){
          printf("処理を強制終了しました");
      return 1;
  }else{
      while(fgets(buf, sizeof(buf), fp))
      fprintf(output_txt, "%s", buf);
          printf("\n%sのデータを%sに書き込みました!", &text0, &text1);
      
      fclose(output_txt);
  }
  fclose(fp);
  
  return 0;
}

まだ、勉強しだして間もないので、上手いコードではないので、ご指摘とか頂けたら幸いです。
C言語の詳しい方と繋がり、いろんな情報交換ができたらいいなと考えています。

今回はこの辺で終わりたいと思います。
みなさんのエンジニアライフに少しでもお役に立てれば幸いです。
ありがとうございました。

コマンド集・用語集(随時更新)
https://note.com/tango9512357/n/n68594748c3c7

【Windows版】コマンドプロンプトでC言語をコンパイルしてみた
https://note.com/tango9512357/n/nb7c3ef649c9f#qOeov

Twitter
https://twitter.com/tango3564

Instagram
https://www.instagram.com/tango3690/