Cあるファイルの内容を別のファイルにコピーするためのプログラム
ファイルはレコードのコレクションです(または)データが永続的に保存されるハードディスク上の場所です。 Cコマンドを使用することで、さまざまな方法でファイルにアクセスできます。
ファイルの操作
C言語のファイルで実行できる操作は次のとおりです-
- ファイルに名前を付ける。
- ファイルを開きます。
- ファイルからの読み取り。
- ファイルへの書き込み。
- ファイルを閉じます。
構文
ファイルを開いて名前を付けるの構文 次のとおりです-
FILE *File pointer;
たとえば、FILE * fptr;
File pointer = fopen ("File name”, "mode”);
たとえば、fptr =fopen( "sample.txt"、 "r");
FILE *fp; fp = fopen ("sample.txt”, "w”);
ファイルから読み取るの構文 次のとおりです-
int fgetc( FILE * fp );// read a single character from a file
ファイルへの書き込みの構文 次のとおりです-
int fputc( int c, FILE *fp ); // write individual characters to a stream
これらの関数を使用して、あるファイルの内容を別のファイルにコピーできます。
例
以下は、あるファイルの内容を別のファイルにコピーするためのCプログラムです-
#include <stdio.h> #include <stdlib.h> // For exit() int main(){ FILE *fptr1, *fptr2; char filename[100], c; printf("Enter the filename to open for reading \n"); scanf("%s",filename); // Open one file for reading fptr1 = fopen(filename, "r"); if (fptr1 == NULL){ printf("Cannot open file %s \n", filename); exit(0); } printf("Enter the filename to open for writing \n"); scanf("%s", filename); // Open another file for writing fptr2 = fopen(filename, "w"); if (fptr2 == NULL){ printf("Cannot open file %s \n", filename); exit(0); } // Read contents from file c = fgetc(fptr1); while (c != EOF){ fputc(c, fptr2); c = fgetc(fptr1); } printf("\nContents copied to %s", filename); fclose(fptr1); fclose(fptr2); return 0; }
出力
上記のプログラムを実行すると、次の結果が得られます-
Enter the filename to open for reading file3.txt Enter the filename to open for writing file1.txt Contents copied to file1.txt
-
Cプログラムのリンクリストの最後からn番目のノードのプログラム
n個のノードがある場合、タスクはリンクリストの最後からn番目のノードを印刷することです。プログラムは、リスト内のノードの順序を変更してはなりません。代わりに、リンクリストの最後からn番目のノードのみを出力する必要があります。 例 Input -: 10 20 30 40 50 60 N=3 Output -: 40 上記の例では、最初のノードからカウントnノードまでのノードがトラバースされます(10、20、30、40、50、60)。したがって、最後から3番目のノードは40です。 リスト全体をトラバースする代わりに、この効率的なアプローチに従うことができます-
-
C円内に内接する十角形の領域のプログラム?
ここでは、円の内側にある十角形の領域を取得する方法を説明します。半径が与えられます。十角形の側面は「a」です。 十角形の側面は以下のようになっていることがわかっているので- したがって、面積は- 例 #include <iostream> #include <cmath> using namespace std; float area(float r) { if (r < 0) //if r is negative it is invalid return -1;