Форматирование текста
// prWriteFormattedText.cpp : main project file.
#include "stdafx.h"
using namespace System;
using namespace System::IO;
int main(array<String^>^ args)
{
double d = Math::PI;
// Формат изображения строк
Console::WriteLine("Число pi выводится на консоль в разных форматах");
Console::WriteLine("В формате {0,-20} запись занимает 20 знаков" + " и пробелы располагаются справа.");
Console::WriteLine("{0,-20};", d);
Console::WriteLine("В формате {0,20} запись занимает 20 знаков " + "и пробелы располагаются слева.");
Console::WriteLine("{0,20};", d);
Console::WriteLine("В формате f число содержит два знака после запятой.");
Console::WriteLine("{0,20:f};", d);
Console::WriteLine("В формате g число типа double выводится с 15 знаками. " + "Это формат по умолчанию.");
Console::WriteLine("{0,20:g};", d);
Console::WriteLine("В формате e число записывается в экспоненциальном формате "+ "с шестью знаками после запятой.");
Console::WriteLine("{0,20:e};", d);
Console::WriteLine("В формате r число записывается с полным набором знаков.");
Console::WriteLine("{0,20:r}", d);
Console::WriteLine("В формате f5 число содержит пять знака после запятой.");
Console::WriteLine("{0,20:f5};", d);
Console::WriteLine("В формате g1 число содержит один знак.");
Console::WriteLine("{0,20:g1};", d);
Console::WriteLine("В формате e9 число в экспоненциальной форме содержит " + "девять знаков после запятой.");
Console::WriteLine("{0,20:e9};", d);
Console::WriteLine("В формате r3 число имеет тот же вид, что и в формате r.");
Console::WriteLine("{0,20:r3}", d);
Console::ReadLine();
// Опишем массив координат частиц
array<double,2>^ q;
// Введем число частиц
Console::Write("Введите число частиц n = ");
int n = int::Parse(Console::ReadLine());
// Определим массив координат
q = gcnew array<double,2>(3, n);
// Заполним массив случайными числами, лежащими в интервале [-1;1)
Random^ rnd = gcnew Random();
for (int i = 0; i < 3; i++)
for (int a = 0; a < n; a++)
q[i, a] = 2 * rnd->NextDouble() - 1;
// Отправим массив либо на экран (поток Console::Out),
// либо в текстовой файл, форматируя размещение символов.
// Выбор цели зависит от аргументов командной строки.
// Если аргументов нет (массив args имеет нулевую длину), то
// поток направляется на экран. Если аргументы есть,
// то поток направляется в текстовой файл,
// именем которого будет первый аргумент args[0].
TextWriter^ tw = args->Length>0 ?File::CreateText(args[0]+
".txt"):Console::Out;
try
{
// Заголовки столбцов
tw->WriteLine("\t|{0,-8}|{1,-8}|{2,-8}|", " X", " Y", " Z");
// Строка разделения
for (int i = 0; i < 36; i++)
tw->Write("-");
tw->WriteLine();
// Строки чисел-координат
for (int a = 0; a < n; a++)
{
// Заголовок текущей строки
tw->Write("{0,5} |", a + 1);
// Содержание текущей строки
for (int i = 0; i < 3; i++)
//tw->Write(q[i, a] >= 0 ? " {0,-7:f4}|" : "{0,-8:f4}|", q[i, a]);
tw->Write("{0,8:f4}|", q[i, a]);
tw->WriteLine();
}
}
finally
{
tw->Close();
}
Console::ReadLine();
return 0;
}
Windows-приложение на C++, редактирующее бинарный файл
Целью следующего приложения является возможность визуального редактирования содержимого байтового потока, связанного с бинарным файлом.
Открыть решение solWriteReadFiles.
В окне Solution Explorer над заголовком решения solWriteReadFiles в контекстном меню (правая кнопка мышки) выбрать команду Add->New Project…
В открывшемся окне Add New Project
на левой панели Project Types: выбрать узел Other Languages->Visual C++->CLR,
на правой панели Templates: выбрать шаблон Windows Forms Application
в строке Name: набрать имя проекта prEditBinFile
щелкнуть OK
Должно появиться окно дизайнера проекта с именем Form1.h [Design] с изображением пустого окна приложения серого цвета с заголовком Form1.
В этом окне визуально редактируются свойства окна приложения, изображенного серым цветом.
Раздвинем серое окно примерно на половину поля внешнего окна, захватив курсором мышки небольшие квадраты, расположенные на правой и нижней границе окна, и потянув мышку вправо и вниз соответственно, либо потянув за квадрат в нижнем правом углу по диагонали вправо и вниз.
Изменим другие свойства окна приложения, используя окно Properties (если окно Properties не открыто, это можно сделать через меню View среды)
В окне Properties найдем свойство Text, содержащее в правой колонке текст Form1. Это заголовок окна по умолчанию. Изменим значение этого свойства на Edit Binary File. После нажатия Enter это изменение должно появиться в заголовке.
Значение другого свойства Start Position (начальное положение окна на экране после запуска приложения), по умолчанию равного WindowsDefaultLocation (положение по умолчанию), изменим на CenterScreen. Теперь после запуска приложения окно будет изображаться в центре экрана.
В окне Solution Explorer вызовем контекстное меню над заголовком проекта prEditBinFile и выберем команду Set As Startup Project. Теперь при активации решения кнопкой с зеленой стрелкой (команда Start Debugging) активироваться будет именно последний проект prEditBinFile.
Активируем приложение, чтобы увидеть результат. Пока пустое окно с заголовком Edit Binary File должно появиться в центре экрана.
