0
{
    string vertexcharacter = "{";
    string a = "}";



ofstream myfile;
myfile.open("newfile.txt");
myfile << vertexcharacter, a;
myfile.close();

system("pause");
return 0;

}

最初の文字列は書き込まれますが、2 番目の文字列はテキスト ドキュメントに表示されません

4

4 に答える 4

4

あなたは探しているようです:

myfile << vertexcharacter << a;

現在、コンマ演算子を使用しているため、行は次のようになります。

(myfile << vertexcharacter), a;

これは に挿入vertexcharactermyfile、結果を破棄してから、a何もしない を評価します。

于 2013-03-22T19:59:30.153 に答える
3

このような:

myfile << vertexcharacter << a;

現在持っているもの

myfile << vertexcharacter, a;

最初の引数 ( ) を評価し、結果を破棄してから、2 番目の引数 ( ) を評価するコンマ演算子が含まれます。これは、カンマ演算子の優先順位が最も低いためです。myfile << vertexcharactera

于 2013-03-22T19:59:33.423 に答える
0

それは違いない

myfile << vertexcharacter << a;
于 2013-03-22T20:22:24.327 に答える
0

簡潔な答え: myfile << vertexcharacter << a;

コンマは、予想とは非常に異なることを行います。コンマはセミコロンのようなものだと考えてください。複数のステートメントをコンマでつなげた場合、各ステートメントは順番に実行されます。しかし、最後のステートメントは、値が「返される」ものです。例えば:

int x = 3;
cout << (x+=2, x+5);

この場合、x+=2x=5 となるように実行されてからx+5「返される」ため、値 10 が cout に挿入されます。一方、あなたの例は次と同等です

(myfile << vertexcharacter), a;

基本的にvertexcharacterは に挿入されmyfile、結果を何らかの方法で取得するx = (myfile << vertexcharacter, a);場合は、x=a が得られます。あなたが本当に欲しいのはmyfile << vertexcharacter << a;

于 2013-03-22T20:20:23.533 に答える