cin.getline不适用于2d数组

时间:2013-01-04 01:55:42

标签: c++

我正在尝试从文本文件中读取一个句子并将其存储在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 *'

有人可以建议一个很好的方法来解决这个问题吗?感谢

2 个答案:

答案 0 :(得分:1)

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

您需要一个指向1D字符数组的指针,您可以只索引另一个维度。 (使用i)您可以这样尝试:

read.getline(people.wishlist[i], MAX);

答案 1 :(得分:1)

正如错误所示,您传递的char所需的char*。具体来说,当您希望将指针传递给数组的开头时,您将传递数组的第一个元素。

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

read.getline(people.wishlist[i], MAX);