{
string vertexcharacter = "{";
string a = "}";
ofstream myfile;
myfile.open("newfile.txt");
myfile << vertexcharacter, a;
myfile.close();
system("pause");
return 0;
第一个字符串写入,但第二个字符串不以文本文档
{
string vertexcharacter = "{";
string a = "}";
ofstream myfile;
myfile.open("newfile.txt");
myfile << vertexcharacter, a;
myfile.close();
system("pause");
return 0;
第一个字符串写入,但第二个字符串不以文本文档
你似乎是在寻找显示:
myfile << vertexcharacter << a;
目前,您正在使用逗号操作符,所以你的行等同于:
(myfile << vertexcharacter), a;
这会将vertexcharacter
插入到myfile
中,丢弃结果,然后评估a
,它不执行任何操作。
像这样:
myfile << vertexcharacter << a;
你现在有什么
myfile << vertexcharacter, a;
涉及comma operator,其评估的第一个参数(myfile << vertexcharacter
),丢弃结果,然后计算第二个参数(a
) 。原因是逗号运算符的优先级最低。
简短的回答: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;
必须再次
myfile << vertexcharacter << a;
逗号运算罢工。打开警报级别,您可能会收到警告。 – chris 2013-03-22 19:59:25