{
string vertexcharacter = "{";
string a = "}";
ofstream myfile;
myfile.open("newfile.txt");
myfile << vertexcharacter, a;
myfile.close();
system("pause");
return 0;
}
写入第一个字符串,但第二个字符串未显示在文本文档中
答案 0 :(得分:4)
您似乎在寻找:
myfile << vertexcharacter << a;
目前,您使用的是逗号运算符,因此您的行等同于:
(myfile << vertexcharacter), a;
这将vertexcharacter
插入myfile
,丢弃结果,然后评估无效的a
。
答案 1 :(得分:3)
像这样:
myfile << vertexcharacter << a;
你目前拥有什么
myfile << vertexcharacter, a;
涉及comma operator,它评估第一个参数(myfile << vertexcharacter
),丢弃结果,然后计算第二个参数(a
)。原因是逗号运算符的优先级最低。
答案 2 :(得分: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;
答案 3 :(得分:0)
一定是
myfile << vertexcharacter << a;