1

VS6 では問題なく動作するこのコードがありますが、VS2010 ではエラーが発生します。

void CGreatString::operator>> (char * lpszDest)
{
strcpy (lpszDest, str());
rdbuf()->freeze(0);
}

私の問題に似たものでこれを見つけましたが、それでもうまくいきませんでした...

したがって、私が理解していることから、VS2010ではostrstreamが非推奨になっているため、これを試しました:

void CGreatString::operator>> (char * lpszDest)
{
ostringstream os;
string str = os().str();                     //Error 1 and 2
strcpy (lpszDest, str.c_str());
os.rdbuf()->freeze(0);                       //Error 3
}

しかし、私はまだエラーが発生します:

1- エラー C2064: 項は引数を 0 個取る関数として評価されません

2- エラー C2228: '.str' の左側にはクラス/構造体/共用体が必要です

3- エラー C2039: 'freeze' : 'std::basic_stringbuf<_Elem,_Traits,_Alloc>' のメンバーではありません

ありがとう!

4

2 に答える 2

0

そのため、ミニ マークダウンはコメントでは機能しません。素晴らしい、それはただの火格子です。

void CGreatString::operator>> (char * lpszDest)
{
    // copy lpszDest into my CGreatString
    // The code you write does nothing at all.
}
于 2012-07-17T08:54:12.557 に答える
0

私の質問に対するコメントから、私はそれを修正することができました。ありがとう!

void CGreatString::operator>> (char * lpszDest)
{
    ostringstream os;
    string str = os.str();
    strcpy (lpszDest, str.c_str());
}
于 2012-05-17T13:05:50.637 に答える