【发布时间】:2026-01-17 17:35:01
【问题描述】:
我有一个文件 abc.txt 有 8000 行。文件结构是:
121220122563841210000000 999.999 999.999 999.999
121220122563841210000000 999.999 999.999 999.999
121220122563841210000000 999.999 999.999 999.999
121220122563841210000000 999.999 999.999 999.999
121220122563841210000000 999.999 999.999 999.999
121220122563841210000000 0.2563 0.25698 2.3658
121220122563841210000000 999.999 999.999 999.999
121220122563841210000000 999.999 999.999 999.999
121220122563841210000000 2.365 2.365894 0.15463
121220122563841210000000 999.999 999.999 999.999
121220122563841210000000 999.999 999.999 999.999
121220122563841220000000 4.2563 6.25698 25.3658
顺序继续。
我需要编写一个程序来读取不包含 999.999 的行。这就是我的做法。我与我读取的值进行了比较,但它给出了完整的文件作为输出。什么是正确的方法做吗?
#include <stdio.h>
int main()
{
FILE *fp,&fp2;
char aa[50];
float a,b,c;
fp=fopen("abc.txt","r");
fp2=fopen("aa.txt","w");
while(!feof(fp))
{
fscanf(fp,"%s %f %f %f",&aa,&a,&b,&c);
if((a!=999.999)&&(b!=999.999)&&(c!=999.999))
fprintf(fp2,"%s %f %f %f",&aa,&a,&b,&c);
}
fclose(fp);
fclose(fp1);
}
当我尝试使用时
if((a=999.999)&&(b=999.999)&&(c=999.999))
它只给出包含 999.999 的行,但我想要不包含 999.999. 的行。请耐心等待,我是 C 的新手。
【问题讨论】:
-
当然你最好使用
grep来做这个...... -
a=999.999会将 999.999 分配给 a。 -
有人请帮我写一个代码 sn-p
-
@vijaykrishna 检查我发布的代码 sn-p。希望对您有所帮助。
标签: c