2

テキスト ファイルから文を読み取って 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 *'

誰かが私のためにこの問題を解決するための良い方法を提案できますか? ありがとう

4

2 に答える 2

1

問題は、2D char 配列people.wishlist[i][k]では単一char(i行目と列目k)を表すがgetline、それらの文字列を期待することchar*です。

1D char 配列へのポインターが必要です。これは、他の 1 つの次元だけにインデックスを付けることができます。(with i) 次の方法で試すことができます:

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

charエラーが示すように、期待される場所にa を渡していchar*ます。具体的には、配列の先頭へのポインターを渡したいときに、配列の最初の要素を渡します。

@ニックが示唆するように、これを試してください

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