我试图使用指针从一个文件中读取数据,但是在getline部分给出了错误,即“no instance of overloaded function”。 不知道该怎么做。。。
代码如下:
#include<iostream>
#include<fstream>
using namespace std;
void read(const char * const, char const *);
int main()
{
char filename[20] = { "sentence.txt" }, data[50] = { '\0' };
read(filename, data);
return 0;
}
void read(const char * const ptr, char const * ptr2)
{
ifstream file;
file.open(ptr);
if (!file.is_open())
{
cout << "File not found " << endl;
exit(0);
}
else
{
while (!file.eof())
{
file.getline(ptr2, 49, ' ');
cout << ptr2 << endl;
}
file.close();
}
}
函数read
已在C++库中定义:
https://en.cppreference.com/mwiki/index.php?title=特殊%3asearch&search=读取
您应该为您的函数使用一个不同的名称。
同样如注释中所写,常量char*
和char常量*
是相同的。 它们是指向常量char的指针,不允许您修改char数组的内容。 您可能需要的是指向char的常量指针:
char * const
好吧,这只是一个简单的错误,我不敢相信我没看到。 星号应该在const之前,这样正确缩进应该是char*const ptr2
,而不是char const*ptr2
叫我哑巴吧。