Перевод строки в консольном приложении (C#)
Насколько я знаю, для перевода строки в Windows используется сочетание управляющих символов \r\n. Но при разработке консольного приложения для этой цели можно обойтись только символом \n. Так, если в программе
\r\n заменить на \n, то вывод от этого не изменится. При этом, например, в элементе управления TextBox, значение свойства Multiline которого равно True, приложения Windows Forms написать \n для перевода строки недостаточно, нужно обязательно писать \r\n. Например, если написать такой код:
, то при нажатии на кнопку buttonOK в поле textBoxOutput никакого переноса не будет. Почему такая разница?
\r\n — стандарт переноса строки в Windows, он со времен MS-DOS не менялся, имеет аббревиатуру CRLF (Carriage Return Line Feed).
\n — стандарт переноса строки в UNIX (Linux, BSD, и т.д.), имеет аббревиатуру LF.
Почему консоль реагирует одинаково на оба варианта — вопрос к разработчикам консоли в Microsoft, но по стандарту гарантированно в Windows должен работать только стандарт CRLF.
Программирование на C, C# и Java
Уроки программирования, алгоритмы, статьи, исходники, примеры программ и полезные советы
ОСТОРОЖНО МОШЕННИКИ! В последнее время в социальных сетях участились случаи предложения помощи в написании программ от лиц, прикрывающихся сайтом vscode.ru. Мы никогда не пишем первыми и не размещаем никакие материалы в посторонних группах ВК. Для связи с нами используйте исключительно эти контакты: vscoderu@yandex.ru, https://vk.com/vscode
Перенос строки в TextBox с Multiline
Покажем, как выполнить перенос строки в TextBox с атрибутом Multiline (когда текстовое поле занимает несколько строк). Сделаем это на примере программы в Windows Forms и языка C#.
Создание интерфейса программы для демонстрации переноса строки в TextBox
Создадим проект Windows Forms. На окне формы расположим два элемента управления: кнопку (Button) и текстовое поле (TextBox). В кнопке параметру Text зададим значение «Прочитать файл», поскольку текст в TextBox будем считывать из файла.
Далее займёмся настройкой TextBox. Нажмите правой кнопкой на данном элементе управления и перейдите к Свойствам.
Значение атрибута Multiline установим, как True. Это позволит выводить в TextBox текст в несколько строк, а не в одну.

Далее активируем полосы прокрутки у TextBox. Это позволит удобнее просматривать и работать с многострочным текстом. Для активации параметр ScrollBars переведём в положение Both — полосы будут по обоим измерениям: по горизонтали и по вертикали.

Растянем TextBox по горизонтали до низа формы и получим нечто подобное:

Интерфейс программы готов.
Создание кода программы для показа возможности перехода на новую строку в TextBox
В Visual Studio два раза щёлкнем на кнопку (Button). Откроется редактор кода обработки нажатия на кнопку. Добавим следующие строки:
Как перейти на следующую строку в c
![]()
![]()
![]()
Site design / logo © 2022 Stack Exchange Inc; user contributions licensed under cc by-sa. rev 2022.6.13.42356
StringBuilder builder = new StringBuilder();
builder.AppendLine(«Hallo, the!»).Append(«My name is Alex»):
string str = builder.ToString();
public static class Chars
public static const char Newline = ‘\n’;
public static const char Tab = ‘\t’;
public static const char CarriageReturn = ‘\r’;
public static const char Beep = ‘\b’;
>
23. Оператор printf — перенос символьной строки
При использовании в программе функции printf может оказаться, что выводимая функцией символьная строка не помещается на текущей строке исходного кода. В таких случаях следует поместить знак обратной наклонной черты (\) в конце текста на текущей строке, продолжив текст с начала следующей строки, как показано ниже:
printf(«Эта строка слишком длинная и не может \
поместиться на одной строке.»);
Примечание: При переносе текста не следует включать пробелы в начало текста на следующей строке. Если такие пробелы имеются, то они включаются Си-компилятором в текстовую строку.
24. Оператор printf — вывод текстовых строк по near- и far-указателям
В разделе «Управление памятью» near- и far-указатели (ближние и удаленные соответственно) обсуждаются достаточно подробно. При использовании в программе строковых far-указателей естественно возникают случаи, когда требуется вывести содержимое строки с помощью printf. Однако, как станет известно в дальнейшем из этой книги, при передаче,fаг-указателя функции, ожидающей короткий (near) адрес, происходит ошибка. Если все же требуется отобразить содержимое строки по ее far-указателю, то следует информировать функцию printf, что используется far-указатель. Для этого надо поместить прописную букву F (для far) сразу после символа %:
В этом случае вызов функции printf будеткорректным. Аналогично можно информировать функцию printf, что ей передается строка с ближним (near) указателем, задавая прописную букву N. Однако, поскольку пеаг-указатели-подразумеваются по умолчанию, спецификаторы формата %Ns и %s означают одно и то же. В следующей программе NEAR_FAR.С показывается использование спецификаторов формата %Fs и %Ns:
char *near_title = «1001 совет по C/C++»;
char far *far_title = «1001 совет по C/C++»;
printf(«Название книги: %Ns\n», near_title);
printf(«Название книги: %Fs\n», far_title);
25. Оператор printf — работа с Esc-символами
При работе с символьными строками часто возникает потребность в использовании некоторых специальных символов, таких как табуляция, возврат каретки или перевод строки. Для обеспечения удобного включения таких символов в строки символов (предназначенные, например, для использования в printf) язык Си определяет набор так называемых Escape-символов (обозначаемых также Esc-символы). Например, во многих программах, представленных в этой книге, следующим образом используется символ перевода строки для продолжения вывода с начала новой строки:
printf(«Строка 1\nСтрока 2\nСтрока З») ;
В табл. 1представлены Esc-символы, которые могут быть использованы в символьных строках (и, следовательно, в выводе printf).