Как записать две строки в файл в Stack Overflow

{
string vertexcharacter = "{";
string a = "}";ofstream myfile;
myfile.open("newfile.txt");
myfile << vertexcharacter, a;
myfile.close();

system("pause");
return 0;

}

первая строка записана, но вторая строка не отображается в текстовом документе

0

Решение

Вы, кажется, ищете:

myfile << vertexcharacter << a;

В настоящее время вы используете оператор запятой, поэтому ваша строка эквивалентна:

(myfile << vertexcharacter), a;

Это вставки vertexcharacter в myfile, отбрасывает результат, затем оценивает a который ничего не делает.

4

Другие решения

Как это:

myfile << vertexcharacter << a;

Что у вас есть

myfile << vertexcharacter, a;

включает в себя оператор запятой, который оценивает первый аргумент (myfile << vertexcharacter), отбрасывает результат, затем оценивает второй аргумент (a). Причина этого заключается в том, что оператор запятой имеет самый низкий приоритет.

3

Короткий ответ: myfile << vertexcharacter << a;

Запятая делает что-то совсем другое, чем вы ожидаете. Думайте о запятой, как точка с запятой. Если у вас есть несколько операторов, соединенных запятыми, каждый оператор будет выполняться по порядку. Но последнее утверждение — это то, чье значение «возвращается». Например:

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

В этом случае, x+=2 выполняется так, что х = 5, а затем x+5 «возвращается», поэтому значение 10 вставляется в cout. Ваш пример, с другой стороны, эквивалентен

(myfile << vertexcharacter), a;

В принципе, vertexcharacter вставляется в myfileи затем, если вы как-то захватывали результат, как x = (myfile << vertexcharacter, a); тогда вы получите х = а. То, что вы действительно хотите, это myfile << vertexcharacter << a;

0

Это должно быть

myfile << vertexcharacter << a;
0
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector