[解決済み] fopen()におけるr+とw+の違いについて
2023-07-14 12:21:14
質問
で
fopen("myfile", "r+")
の違いは何ですか?
"r+"
と
"w+"
を開くモードですか?私はこれを読んだ。
"r"
テキストファイルを読み込むために開く。
"w"
テキストファイルを書き込み用にオープンする。 既存のファイルをゼロの長さに切り詰めたり、ファイルが存在しない場合は作成したりします。
"r+"
更新のためにテキストファイルを開く。 書き込みの両方)。
"w+"
更新(読み書き)用にテキストファイルを開く。 まず、ファイルが存在する場合は長さをゼロに切り詰め ファイルが存在する場合は長さをゼロに切り詰め、存在しない場合はファイルを作成します。
つまり違いは、ファイルを
"w+"
で開くと、先にファイルが消されてしまうということでしょうか?
どのように解決するのですか?
主な違いは
w+
は、ファイルが存在する場合は長さをゼロに切り詰め、存在しない場合は新しいファイルを作成することです。一方
r+
はコンテンツを削除せず、存在しない場合は新しいファイルを作成しません。
これらのコードを試してみて、あなたは理解するでしょう。
#include <stdio.h>
int main()
{
FILE *fp;
fp = fopen("test.txt", "w+");
fprintf(fp, "This is testing for fprintf...\n");
fputs("This is testing for fputs...\n", fp);
fclose(fp);
}
そして、この
#include <stdio.h>
int main()
{
FILE *fp;
fp = fopen("test.txt", "w+");
fclose(fp);
}
もし、あなたが
test.txt
を開くと、最初のプログラムによって書き込まれたすべてのデータが消去されていることがわかります。
これを繰り返して
r+
を繰り返し、その結果をご覧ください。
以下は、さまざまなファイルモードのまとめです(1 =>
ture
, 0 =>
false
):
関連
-
警告:代入がキャストなしで整数からポインタを作成する場合の修正方法に関する警告
-
[解決済み] SQLiteのINSERT/per-secondのパフォーマンスを向上させる
-
[解決済み] 1ビットのセット、クリア、トグルはどのように行うのですか?
-
[解決済み] const int*、const int * const、int const *の違いは何ですか?
-
[解決済み] ++iとi++の違いは何ですか?
-
[解決済み] mallocとcallocの違い?
-
[解決済み] C言語で関数をパラメータとして渡すにはどうすればよいですか?
-
[解決済み] スタティック・ライブラリとシェアード・ライブラリの違い?
-
[解決済み】定義と宣言の違いは何ですか?
-
[解決済み】共有オブジェクト(.so)、静的ライブラリ(.a)、DLL(.so)の違い?)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[C] レポートエラー 代入の左オペランドとしてlvalueが必要
-
libc++abi.dylib: NSException タイプの捕捉されない例外で終了するエラー
-
Solve Dev-c++ [エラー] 'for' ループの初期宣言は、C99 または C11 モードでのみ許可されます。
-
initializer element is not constant "というエラーが表示されるのですが?
-
C: 1を求める! + 2! + 3! + ... + n! (ループ)
-
[解決済み] PTHREAD_MUTEX_INITIALIZER vs pthread_mutex_init ( &mutex, param )
-
[解決済み] Linuxカーネルにおけるcontainer_ofマクロの理解
-
[解決済み] C 言語の配列へのポインタ/ポインタの配列の曖昧さ解消
-
[解決済み] C言語の構造体(CGRectやCGPointなど)をNSLog化することは可能ですか?
-
[解決済み] 2次元配列の反復処理において、ループの順序がパフォーマンスに影響するのはなぜですか?