【发布时间】:2017-02-26 21:02:49
【问题描述】:
我的数据位于包含两列、x 值和 y 值的文本文件中。这个文件上的数据点数可以不同,但永远不会超过 1000。所以我声明了两个数组 x[1000] 和 y[1000]。我必须读取数据文件并为每个数字分配一个特定的变量,以便以后可以使用它进行一些计算。假设我的文本文件中有 319 个数据点:
x y
1 2.3
1.5 2.2
2.0 2.5
... ...
160.0 35.5
使用下面的代码,我以以下方式存储数据:
x[0]=1, x[1]=1.5, x[2]=2.0, ............., x[318]=160.0
y[0]=2.3, y[1]=2.2, y[2]=2.5, ............., y[318]=35.5
现在我想计算 x 持有的元素数量。换句话说,我想知道我的数组 x 和/或 y 的大小。
#include <iostream>
#include <fstream>
using namespace std;
int main(){
int i=0;
ifstream fin;
fin.open("mydata.txt");
if (fin.fail()){
std::cerr << "Error opening file!" << endl;
exit(1);
}
double x[1000], y[1000];
fin.ignore(1000,'\n');
while(!fin.eof()){
mufile >> x[i];
mufile >> y[i];
i++;
}
我试过了:
int N=sizeof(x)/sizeof(*x);
这给了我 1000,我在开头声明的数组的大小,(不是 319 更新后的 x 的大小)。
【问题讨论】:
-
codeblocks标签无关紧要... -
一个数组总是有相同数量的元素。您需要跟踪自己认为有效的数量。
-
x 和 y 的大小都是 1000。您只分配了 319 个项目。您可以通过检查您的计数器 i 来了解这一点。
-
或使用
std::vector
标签: c++