C言語のfopen()関数で既存ファイルを書き込みモードで開く方法
fopen()関数とは
C言語のfopen()関数は、指定されたファイルを開き、そのファイルに対して読み書きを行うための標準ライブラリ関数です。ファイルを開く際には、アクセスモードを指定する必要があります。書き込みモードでは「w」、読み取りモードでは「r」を使用します。
特に書き込みモード「w」でファイルを開いた場合、同名のファイルがディレクトリ内に既に存在していても、そのファイルは新しい空のファイルとして扱われます。そのため、既存ファイルの内容はすべて失われ、新しいデータで完全に上書きされる点に注意が必要です。
fopen()の構文
C言語におけるfopen()関数の構文は以下の通りです。
FILE *fopen(const char *filename, const char *access_mode)
パラメータの説明
filename − 開きたいファイルの名前を指定します。
access_mode − ファイルへのアクセス方法(読み取りモード、書き込みモードなど)を指定します。
使用例
以下は、C言語でfopen()関数を使用する例です。ここでは、次の内容を持つファイル「one.txt」が存在すると仮定します。
This is demo text!
This is demo text!
This is demo text!
それでは、実際のコードを見てみましょう。
サンプルコード
#include <stdio.h>
#include<conio.h>
void main () {
FILE *f;
int len;
f = fopen("one.txt", "r");
if(f == NULL) {
perror("Error opening file");
return(-1);
}
fseek(f, 0, SEEK_END);
len = ftell(f);
fclose(f);
printf("Size of file: %d bytes", len);
getch();
}
実行結果
Size of file: 78 bytes
プログラムの解説
上記のプログラムでは、まずファイル型のポインタ変数「f」を宣言しています。この変数は、fopen()関数を使って「one.txt」という名前のファイルを開くために使用されます。
FILE *f;
int len;
f = fopen("one.txt", "r");
この例では読み取りモード「r」でファイルを開き、fseek()関数でファイルの末尾に移動した後、ftell()関数でファイルサイズを取得しています。ファイルを開く際にエラーが発生した場合(fがNULLを返す場合)は、perror()関数でエラーメッセージを表示してプログラムを終了します。
なお、既存ファイルの内容を消さずにデータを追記したい場合は、追記モード「a」を使用します。書き込みモード「w」と追記モード「a」の違いを正しく理解しておくことで、意図しないデータの消失を防ぐことができます。
-
Word・ExcelファイルをPDFに変換する簡単な方法【保存手順を解説】
はじめにMS WordやMS Excelで作成した既存のファイルをPDF形式に変換するのは難しいと感じている方は少なくありません。そのため、変換専用のウェブサイトを利用する人も多いようです。しかし、実はわざわざ外部サイトを使う必要はありません。WordにもExcelにも、アプリケーション自体に「PDFとして保存」する機能が標準で搭載されているからです。筆者も学生時代にWordからPDFへの変換作業を頻繁に行っていましたが、この機能のおかげで作業が格段に楽になりました。ぜひ参考にしてください。Word文書をPDFとして保存する方法まず、PDF形式に変換したい文書を開きます。ここではMS Word
-
NTFS for Mac 無料ツール活用ガイド:MacでNTFSドライブに書き込む方法
ディスクを使って複数のコンピューター間でファイルをやり取りする際、多くのユーザーが直面するのがディスクのフォーマット形式に起因するトラブルです。こうしたファイル互換性の問題は、NTFS for Mac の無料ツールを活用することで解決できます。 macOS環境で外付けディスクを接続すると、中身を読み取ることはできても、書き込みやファイルの保存ができない——そんな制限に悩まされた経験はありませんか?これは、使用しているディスクが以前Windows OSでフォーマットされていた場合に発生する、典型的なクロスプラットフォーム互換性の問題です。 この問題を正しく理解するには、まず「ファイルシステム」に