我正在尝试从文本文件中读取一个句子并将其存储在2D数组中。我正在使用cin.getline函数。我试图将文本文件的每个句子存储到2D数组的一行.read是我的ifstream对象。以下是我的代码示例
for (int i = 0; i < 7; i++)
{
int k=0;
read.getline(people.wishlist[i][k], MAX); // store in row 0 when i is 0
}
// what my text file looks like:
// Hey how is your day
// whats up
我收到的错误消息:
error C2664: 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::getline(_Elem *,std::streamsize)':
cannot convert parameter 1 from 'char' to 'char *'
有人可以建议一个很好的方法来解决这个问题吗?感谢
答案 0 :(得分:1)
问题是在2D字符数组上people.wishlist[i][k]
代表单个char
(i
行和k
列),但是getline
需要一串char*
。
您需要一个指向1D字符数组的指针,您可以只索引另一个维度。 (使用i
)您可以这样尝试:
read.getline(people.wishlist[i], MAX);
答案 1 :(得分:1)
正如错误所示,您传递的char
所需的char*
。具体来说,当您希望将指针传递给数组的开头时,您将传递数组的第一个元素。
正如@Nick建议的那样,试试这个
read.getline(people.wishlist[i], MAX);