0

我正在尝试从每行都有一个数字的文件中获取数字。

3
7
8
5
2
1

并将整数从文件插入到我的代码中称为 insert() 的函数中。

这就是我所拥有的:

   int main()
    {   ifstream myfile;
        myfile.open("numbers.txt");
        while(!myfile == EOF)
        {
            myfile.getline(myfile,1000000);
            insert(myfile);
        }
        myfile.close();


display();
return 0;
}

我收到此错误聚合 'std::ifstream myfile' 的类型不完整,无法定义。

4

2 回答 2

1

myfile.getline(myfile,1000000);

这应该如何工作?让我们看一下DOCUMENTATION中函数的签名:

istream& getline (char* s, streamsize n );

istream& getline (char* s, streamsize n, char delim );

函数希望你给它一个 char 指针 s 和数组 n 的大小,你给它一个ifstream myfile和一个非常大的随机 int。

创建一个数组用于临时存储读取行

char line[99];

然后将其传递给函数。

myfile.getline(line,99);


您也void insert(int d)接受整数,并且您正在尝试将 fstream 对象传递给它。你可以保持这样,但你必须先将字符串转换为 int。尝试atoi()

于 2013-05-07T04:52:40.310 回答
1

您需要添加

#include <fstream>
using namespace std;

在文件的开头。

编辑:另外,您正在调用insert(myfile);where myfileis of type ìfstream,但您对insertis的定义void insert(int)

于 2013-05-07T04:43:10.593 回答