C或C++编写读取txt中的数据,并计算(含复数)
假如有个txt文件保存在F盘中,内容是:第一行:1.000(空1格)2.000第二行:3.000(空1格)4.000把一二行读出以复数形式存到a、b中,a=1+2*j,b...
假如有个txt文件保存在F盘中,内容是:
第一行:1.000(空1格)2.000
第二行:3.000(空1格)4.000
把一二行读出以复数形式存到a、b中,a=1+2*j,b=3+4*j
然后计算s=a*c+b*c (c=1-1*j)
哪位大神会编下的?
主要是要读取,而且还是复数,真头疼,c语言后面文件相关的没学好。。。
这些天问的问题比较多,都没什么分悬赏了。。 展开
第一行:1.000(空1格)2.000
第二行:3.000(空1格)4.000
把一二行读出以复数形式存到a、b中,a=1+2*j,b=3+4*j
然后计算s=a*c+b*c (c=1-1*j)
哪位大神会编下的?
主要是要读取,而且还是复数,真头疼,c语言后面文件相关的没学好。。。
这些天问的问题比较多,都没什么分悬赏了。。 展开
2个回答
展开全部
用数组来表示复数 float a[2],b[2],c[2],s[2];
读取a、b
FILE *fp;
if((fp=fopen("f:\\a.txt","r+"))!=NULL)
{
fscanf("%f%f",&a[0] , &a[1] );
fscanf("%f%f",&b[0] , &b[1] );
fclose(fp);
}
相乘的函数:
void mult(float a[2], float c[2], float result[2])
{
result[0] = a[0] * c[0] - a[1] * c[1] ;
result[1] = a[1] * c[0] + a[0] * c[1] ;
return;
}
调用:
mult(a, c, s);
读取a、b
FILE *fp;
if((fp=fopen("f:\\a.txt","r+"))!=NULL)
{
fscanf("%f%f",&a[0] , &a[1] );
fscanf("%f%f",&b[0] , &b[1] );
fclose(fp);
}
相乘的函数:
void mult(float a[2], float c[2], float result[2])
{
result[0] = a[0] * c[0] - a[1] * c[1] ;
result[1] = a[1] * c[0] + a[0] * c[1] ;
return;
}
调用:
mult(a, c, s);
更多追问追答
追问
我忽然发现我那个文件里面还有其他东西,
第一行:1(1.000)(空1格)2(2.000)
第二行:3(3.000)(空1格)4(4.000)
这个该怎么提取呢?有没什么精确的定位法,麻烦你了
你那个用数组来表示复数的方法很好哇,我一般用的是结构体
追答
有括号吗?可以试试这样:
fscanf("%d(%f)",&dummy,&a[0] );
ps:注意可能中文的和英文的括号会混淆
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询