2

我正在尝试从文本文件中读取一个句子并将其存储在二维数组中。我正在使用函数 cin.getline。我正在尝试将文本文件的每个句子存储到二维数组的一行。读取是我的 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 *'

有人可以为我提出一个解决这个问题的好方法吗?谢谢

4

2 回答 2

1

问题是在 2D char 数组people.wishlist[i][k]上代表单个chari第行和k第列),但getline需要它们的字符串char*

您需要一个指向一维 char 数组的指针,您可以只索引一个其他维度。(with i) 你可以这样尝试:

read.getline(people.wishlist[i], MAX);
于 2013-01-04T02:01:33.507 回答
1

正如错误所说,您正在传递 achar它期望 a 的地方char*。具体来说,当您想要将指针传递给数组的开头时,您正在传递数组的第一个元素。

正如@Nick 建议的那样,试试这个

read.getline(people.wishlist[i], MAX);
于 2013-01-04T02:01:57.073 回答