用C++读取data.txt,文件内容如下,第一列是id,后面3列是x,y,z坐标,算法要求输入id,得到原子坐标 120
250.96148840.4977897.1122799262.23253632.6993067.1122799550.9322594.8981710.6725009得到...
25 0.9614884 0.497789 7.1122799
26 2.2325363 2.699306 7.1122799
55 0.932259 4.898171 0.6725009
得到坐标,可以对坐标进行后面的计算,最好建立一个n行4列的二位数组储存数据 展开
26 2.2325363 2.699306 7.1122799
55 0.932259 4.898171 0.6725009
得到坐标,可以对坐标进行后面的计算,最好建立一个n行4列的二位数组储存数据 展开
1个回答
展开全部
// 读取文件函数
ifstream& open_file(ifstream& in, const string& file)
{
in.close();// close in case it was already open
in.clear();// clear any existing errors
// if the open fails, the stream will be in an invalid state
in.open(file.c_str());// open the file we were given
return in;// condition state is good if open succeeded
}
// 定义结构体
struct Coordinate
{
int id;
double x;
double y;
double z;
};
vector<Coordinate> vecCoor;
ifstream in;
open_file(in, "D:\\data.txt");
string line, word;
while (getline(cin, line))
{
istringstream stream(line);
while (stream >> word)
{
// 将读取的数字字符串转为对应类型的数字,插入vector数组
}
}
更多追问追答
追问
编译没有通过
F:\迅雷下载\13.cpp(2) : error C2143: syntax error : missing ';' before '&'
出现在这行 ifstream& open_file(ifstream& in, const string&file)
您能不能写出主函数来,主函数你可以简单写一下,就是输入原子编号,然后显示原子坐标,然后对其进行简单的加减法就行😁
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询