你如何用c ++写一个文件的两个字符串

时间:2013-03-22 19:58:57

标签: c++

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



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

system("pause");
return 0;

}

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

4 个答案:

答案 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;
相关问题