下面是我正在处理的一些代码。由于某种原因,不是从文件中读取值,而是将所有值读入0。我缺少明显的东西吗?
#include <iostream>
#include <iomanip>
#include <string>
#include <cmath>
#include <fstream>
using namespace std;
void findRadius(){
double x1,x2,y1,y2;
double radius = sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1));
cout << fixed << setprecision(2) << "The radius for the point (" << x1 <<"," << y1<<" ) and ("<<x2<<","<<y2<<") is: "<< radius <<endl;
}
int main ()
{
double x1;
double x2;
double y1;
double y2;
ifstream inFile;
inFile.open("circles.txt");
while (inFile >> x1 >> x2 >>y1 >>y2){
findRadius();
}
}
答案 0 :(得分:2)
您根本不会将从文件中读取的值传递给函数,并且该函数正在使用从未初始化的局部变量来计算事物。
尝试以下方法:
#include <iostream>
#include <iomanip>
#include <string>
#include <cmath>
#include <fstream>
using namespace std;
void findRadius(double x1, double x2, double y1, double y2) {
double radius = sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1));
cout << fixed << setprecision(2) << "The radius for the point (" << x1 << "," << y1 << " ) and (" << x2 << "," << y2 << ") is: " << radius << endl;
}
int main()
{
double x1, x2, y1, y2;
ifstream inFile;
inFile.open("circles.txt");
while (inFile >> x1 >> x2 >> y1 >> y2){
findRadius(x1, x2, y1, y2);
}
return 0;
}
答案 1 :(得分:1)
由于某种原因,不是从文件中读取值,而是将所有值读入0。我缺少明显的东西吗?
是的,您没有将从文件中读取的值传递给函数。在该函数中,您使用的是未初始化的局部变量。
将功能更改为:
void findRadius(double x1, double x2, double y1, double y2)
{
double radius = sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1));
cout << fixed << setprecision(2) << "The radius for the point (" << x1 <<"," << y1<<" ) and ("<<x2<<","<<y2<<") is: "<< radius <<endl;
}
并将其调用更改为:
while (inFile >> x1 >> x2 >>y1 >>y2){
findRadius(x1, x2, y1, y2);
}