strcmp()
テキスト ファイルの特定の行が改行文字 ( ) と等しいかどうかをテストするために使用しようとしています\n
。1 つのテキスト ファイルから各行を収集し、それらを別のテキスト ファイルに書き込んでいます。ソース ファイルの行全体が単なる 1 つの改行文字である場合、その行をターゲット ファイルに書き込みたくありません。
以下のコードはこの目的のために機能すると思いますが、そうではありません。しかし、条件の数値を 0 から 3 に変更すると、動作させたいように動作します。理由はありますか?
私の目標は、数値 0 を使用するように条件を変更することです。つまりstrcmp()
、完全一致が見つかりますが、それを行うために条件の他の部分を変更する方法がわかりません。
#include <stdio.h>
void process_file(const char *inp_file, FILE *otp_fp) {
char line[256];
FILE *inp_fp = fopen(inp_file, "r");
if (inp_fp != NULL) {
while(fgets(line, 256, inp_fp) != NULL) {
if (strcmp (line, "\n") != 0) { //changing to 3 gets desired result
fprintf(otp_fp, line);
}
}
}
fclose(inp_fp);
}