从文本文件填充数组

时间:2015-04-11 19:46:06

标签: c++ arrays text-files

我遇到了一些麻烦,我正在进行统计假设检验。我可以在纸上完成所有计算,但是从文件读取到数组时遇到了麻烦。

以下是我需要的数字,它们已经完全包含在文本文件input1.txt中。

14

0.5923 0.58 0.6008 0.6117 0.6295 0.6088 0.6148 0.6369 0.6372 0.6241 0.6034 0.6108 0.591 0.601

109.31 110.13 108.9 108.96 108.86 109.17 109.29 108.62 109.06 108.61 109.83 110.48 111.53 111.02

我想从第一行定义数组大小为14,然后是前14位数和第二行14的两个单独数组。如果这有意义,我需要从文本文件填充而不是由用户。

目前我只能将它读入所有数据到文件末尾。我需要它来阅读每一行到我想的结尾?

非常感谢任何帮助。

这是我到目前为止所拥有的。

    #include "std_lib_facilities.h"
    #include <cctype>
    #include <iostream>
    #include <fstream>

    using namespace std;

    int main()
     {
int array_size; //I want this to be 14, read from the first line of txt file
double * array1; 
double * array2;
ifstream fin("input1.txt"); //opening an input stream for file

if (fin.is_open())
{
    cout << "File opened" << endl;
    cin >> array_size;
    cout << "N = " << array_size << endl;
    array1 = new double[array_size]; //allocate memory for arrays
    array2 = new double[array_size];
    for (int i = 0; i < array_size; ++i) //fill array1
        cin >> array1[i];
    for (int i = 0; i < array_size; ++i) //fill array2
        cin >> array2[i];

    cout << "Arrays are below" << endl << endl;
        cout << "Additive  ";
    for (int i = 0; i < array_size; ++i)
        cout << array1[i] << ' ';
    cout << endl;
        cout << "Yield  ";
    for (int i = 0; i < array_size; ++i)
        cout << array2[i] << ' ';

}
else
{
    cout << "File could not be opened." << endl;
}

fin.close();


return 0;
    }

1 个答案:

答案 0 :(得分:1)

您想要从文件中读取,但您使用cin,它从标准输入读取。 只需将cin更改为已打开文件流的名称 - fin ;)