Хочу записать данные в файл, но не знаю как сделать так, чтобы записывалось в два столбика. Помогите разобраться.
....
mas[0]=1;
mas[1]=2;
mas[2]=3;
//...
mas[7]=8
ofstream out ("1.txt", ios::app);
for (int i = 0; i <=7; i++)
{
out << mas[i] << endl;
}
out.close();
Как один из возможных вариантов записи массива в файл в два столбца:
#include <fstream>
#include<array>
using namespace std;
int main()
{
array<int, 10> arr = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
ofstream fout("file.txt");
bool lineEnd = true;
for (int elem : arr)
{
if (lineEnd)
fout << elem << "\t";
else
fout << elem << "\n";
lineEnd = !lineEnd;
}
fout.close();
return 0;
}
В файл будут записаны числа из массива в два столбца.
Что здесь происходит: "\t"
– знак табуляции, выравнивает столбцы. "\n"
– знак перехода на новую строку. Эти спецсимволы поочерёдно добавляются после каждого выводимого элемента, что и проводит к образованию ровных столбцов.
В коде используется std::array
вместо "голых" массивов C++, согласно настоятельным рекомендациям авторов Cpp core guidlines.
Если всё же переписать Ваш код:
mas[0]=1;
mas[1]=2;
mas[2]=3;
//...
mas[7]=8
ofstream out ("1.txt", ios::app);
bool lineEnd = true;
for (int i = 0; i <=7; i++)
{
if (lineEnd)
out << mas[i] << "\t";
else
out << mas[i] << endl;
lineEnd = !lineEnd;
}
out.close();
Однако рекомендую всё же пользоваться std::array
.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Имеется три переменные типа doubleНужно для первой переменной t сделать 1 знак после запятой, а для двух оставшихся x и y сделать 3 знака после...
Известно, что background-clip не поддерживается в IE 11, однако текст необходимо сделать градиентнымКроме того, существует полифилл для IE 11
Пытаюсь сделать эту секцию SVG методомСмотрю видеоролики, читаю статьи, но все ровно ничего не получается