我试图用来strcmp()
测试文本文件中的特定行是否等于换行符(\n
)。我从一个文本文件中收集每一行,并将它们写入另一个文本文件。如果源文件中的整行只是一个换行符,我不想在目标文件中写入该行。
我认为下面的代码可以用于此目的,但事实并非如此。但是,如果我将条件中的数值从 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);
}