Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 从txt文件到数组中输入数字_C++_Arrays_Text_Fstream - Fatal编程技术网

C++ 从txt文件到数组中输入数字

C++ 从txt文件到数组中输入数字,c++,arrays,text,fstream,C++,Arrays,Text,Fstream,我很确定这是一个常见的问题,但我找不到类似的例子,所以。。 我有一个名为input.txt的文本文件,其中包含:0.0001234 1.0005434 0.0005678 1.0023423 0.00063452 1.0001546 0.00074321 1.00017654。 现在我想编写一个程序,将其读入数组,然后快速检查它是否工作。到目前为止,我有: #include <iostream> #include <fstream> #include <string

我很确定这是一个常见的问题,但我找不到类似的例子,所以。。 我有一个名为input.txt的文本文件,其中包含:0.0001234 1.0005434 0.0005678 1.0023423 0.00063452 1.0001546 0.00074321 1.00017654。 现在我想编写一个程序,将其读入数组,然后快速检查它是否工作。到目前为止,我有:

#include <iostream>
#include <fstream>
#include <string>
using namespace std;

int main ()
{
    double PA[8];
    int n;
    ifstream myfile ("input.txt");
    if (myfile.is_open())
    {
        while (! myfile.eof() )
        {
            getline (myfile,line);
            cout << PA[line]<< endl;

        }
        myfile.close();
    }
    else cout << "Unable to open file";
    for (n=0; n<8; n++) // to print the array, to check my work
    {
         cout << " {" << PA[n] << "} ";
}

    system("PAUSE");
    return 0;
}
#包括
#包括
#包括
使用名称空间std;
int main()
{
双PA[8];
int n;
ifstream myfile(“input.txt”);
如果(myfile.is_open())
{
而(!myfile.eof())
{
getline(myfile,line);
cout声明行变量

int n, line = 0;
std::string value;
正确的负载数据:

getline (myfile,value);
PA[line] = atof(value.c_str());
cout << PA[line]<< endl;
line++;
getline(myfile,value);
PA[line]=atof(value.c_str());
cout这里的变量行

cout << PA[line]<< endl;
你确定要打getline电话吗

我知道一个带有这个签名的getline:

ssize_t getline(char **lineptr, size_t *n, FILE *stream);
这甚至与您的版本中的参数数量不匹配


如果输入文件的输入行数超过8行,则while循环将有那么多的交互,并且数组中只有8个元素的空间。

您需要声明称为“line”的变量,如下所示:

   int i=0;

   while (! myfile.eof() && i<8)
    {
        std::string line; // this was the missing statement

        getline (myfile,line);

        double value = atof(line.c_str()); // convert line form char* to double

        PA[i++] = value;

        cout << value << endl;

    }
inti=0;

while(!myfile.eof()&&I加载数据是什么意思?将数据从输入文件加载到double数组(while(!myfile.eof()){…}之间的代码块)谢谢!这大部分是有效的,除了它似乎只对第一个数字进行加载,而且我无法使循环工作,似乎我只是在成倍地增加错误:P
   int i=0;

   while (! myfile.eof() && i<8)
    {
        std::string line; // this was the missing statement

        getline (myfile,line);

        double value = atof(line.c_str()); // convert line form char* to double

        PA[i++] = value;

        cout << value << endl;

    }