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



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

system("pause");
return 0;

}

第一个字符串已写入,但第二个字符串未显示在文本文档中

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;

涉及逗号运算符,它计算第一个参数 ( myfile << vertexcharacter),丢弃结果,然后计算第二个参数 ( a)。原因是逗号运算符的优先级最低。

于 2013-03-22T19:59:33.423 回答
0

简短的回答: myfile << vertexcharacter << a;

逗号的作用与您期望的完全不同。把逗号想象成分号。如果有多条语句用逗号串在一起,则每条语句都会按顺序执行。但最后一条语句是其值被“返回”的语句。例如:

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

在这种情况下,x+=2执行 x=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 回答
0

一定是

myfile << vertexcharacter << a;
于 2013-03-22T20:22:24.327 回答