Windows forms console writeline

C#. Урок 3. Консольный ввод\вывод

Backend-разработка и создание утилит командной строки невозможно без консольного ввода\вывода. В рамках данной статьи будут рассмотрены методы класса Console для чтения и записи информации в консоль.

Исходный код примеров из этой статьи можете скачать из нашего github-репозитория.

Консольный ввод\вывод

Все приложения условно можно разделить на две группы: консольные и с графическим интерфейсом пользователя. Ко второй группе относится большая часть приложений, с которыми работают пользователи в операционной системе Windows, на смартфонах и в вебе. Под консольными будем понимать приложения, которые запускаются через терминал (командную строку), их взаимодействие с пользователем происходит в текстовом режиме. Практически все приложения, которые запускаются на стороне сервера можно отнести к этой группе. Для организации ввода\вывода информации при работе с консолью в C# используется класс Console.

Класс Console. Вывод данных в консоль

Класс Console содержит методы для работы с консольным вводом\выводом, управлением потоком с ошибками и окном консоли. Начнем с вывода информации в консоль, для решения этой задачи класс Console предоставляет два метода: Write и WriteLine.

Для знакомства с методами класса Console создайте в удобном для вас каталоге проект с именем CSharpLesson3:

Метод Write

Метод Write – направляет в стандартный выходной поток текстовое представление переданного в него объекта. Дополнительно, предоставляет возможность задать форматирование.

Откройте файл Program.cs в созданном ранее проекте и добавьте в метод Main следующие строки, демонстрирующие работу с методом Write:

Более подробно про форматирование будет написано в уроке, посвященном работе со строками.

Сохраните документ, откройте консоль, перейдите в каталог с проектом и выполните команду:

Результат работы программы будет выглядеть примерно следующим образом:

Обратите внимание на первые три вызова метода Write, если не поставить символ перевода строки, то данные будут выдаваться в одну строку друг за другом, это не всегда удобно. Если требуется, чтобы вывод каждый раз осуществлялся с новой строки, то воспользуйтесь методом WriteLine.

Метод WriteLine

Метод WriteLine записывает указанные данные в выходной поток и добавляет символ перевода строки. Добавьте в программу следующие строки:

Теперь надпись “Текущая дата:” и дата со временем будут выведены в разных строках.
WriteLine (также как Write) может принимать не только строковые значения, но и переменные разных типов:

Удобным и наглядным способом вывода значений переменных в консоль с дополнительным текстовым пояснением является использование строковой интерполяции:

Запустите проект и в консоли увидите результат выполнения программы:

Прием интерполяции позволяет внутри строки, используя фигурные скобки, указывать имена переменных, которые будут заменены значениями. Перед такой строкой ставится знак $.
Методы WriteLine и Write позволяют использовать форматирование:

В этом случае методу передается ряд параметров, первый – это строка, в которой, в фигурных скобках, указывается порядок подстановки значений переменных, далее, через запятую, перечисляются переменные, значения которых нужно подставить, здесь важен порядок: нумерация начинается с 0.

Класс Console. Чтение данных из консоли

В классе Console, помимо рассмотренных выше методов вывода в консоль, присутствуют методы для считывания вводимых данных из консоли.

Читайте также:  Хеликс веб камера драйвер 1с для windows 10

Метод Read

Метод Read возвращает числовой код последнего введенного символа во входном потоке, если символ введен не был, то будет возвращен код -1. Для завершения работы метода, после ввода символа необходимо нажать клавишу “Enter”. Рассмотрим работу с методом Read на примере:

Если после надписи “Нажмите любую клавишу, а затем Enter” будет введено более одного символа, то Read вернет только первый.

Для представления кода в виде символа необходимо переменную key1 привести к типу Char, для этого можно воспользоваться методом Convert.ToChar().

Метод ReadLine

Метод ReadLine возвращает введенную строку символов до нажатия клавиши “Enter”. Добавим несколько строк в файл с исходным кодом, для демонстрации работы с методом ReadLine :

Если необходимо получить с консоли численные данные, то следует воспользоваться методами из класса Convert для приведения типа String к соответствующему числовому типу:

Метод ReadKey

ReadKey возвращает объект класса ConsoleKeyInfo, в который помещается информация о нажатой клавише. Этот метод, как правило, используют для остановки выполнения программы или чтобы получить ответ от пользователя. Добавим строки для работы с ReadKey:

Исходный код примеров из этой статьи можете скачать из нашего github-репозитория.

Как отобразить вывод/окно консоли в приложении forms?

застрять сразу, очень простой пример:

если я скомпилирую это с параметрами по умолчанию (используя csc в командной строке), как и ожидалось, он будет компилироваться в консольное приложение. Кроме того, потому что я импортировал System.Windows.Forms , Он также покажет окно сообщения.

теперь, если я использую опцию /target:winexe Я думаю, что это то же самое, что Windows Application из параметров проекта, как и ожидалось, я буду видеть только окно сообщения и не выводить консоль.

(In факт, в тот момент, когда он запускается из командной строки, я могу выдать следующую команду, прежде чем приложение даже завершится).

Итак, мой вопрос — я знаю, что вы можете иметь вывод «windows»/forms из консольного приложения, но есть ли в любом случае, чтобы показать консоль из приложения Windows?

9 ответов:

создать проект Windows Form.

Затем: Свойства Проекта — > Приложение — > Тип Вывода — > Консольное Приложение

тогда может иметь консоль и формы, работающие вместе, работает для меня

Если вы не беспокоитесь об открытии консоли по команде, вы можете перейти в свойства для вашего проекта и изменить его на консольное приложение

Это будет по-прежнему показывать вашу форму, а также выскакивает окно консоли. Вы не можете закрыть окно консоли, но он работает как отличный временный регистратор для отладки.

просто не забудьте выключить его перед развертыванием программы.

можно назвать AttachConsole использование pinvoke для подключения окна консоли к проекту WinForms:http://www.csharp411.com/console-output-from-winforms-application/

вы также можете рассмотреть Log4net ( http://logging.apache.org/log4net/index.html) для настройки вывода журнала в различных конфигурациях.

это сработало для меня, чтобы передать вывод в файл. Вызовите консоль с помощью

cmd /c «C:\path\to\your\application.exe » > myfile.txt

добавьте этот код в приложение.

есть в основном две вещи, которые могут произойти здесь.

вывод на консоль Программа winforms может присоединяться к создавшему ее консольному окну (или к другому консольному окну, или даже к новому консольному окну, если это необходимо). После подключения к консоли окна консоли.WriteLine () etc работает так, как ожидалось. Один из них заключается в том, что программа немедленно возвращает управление в окно консоли, а затем продолжает писать в него, поэтому пользователь может также введите в окне консоли. Вы можете использовать start с параметром /wait, чтобы справиться с этим, я думаю.

Читайте также:  Сбился экран монитора windows 10

перенаправление вывода консоли Это когда кто-то передает вывод из вашей программы куда-то еще, например.

прикрепление к окну консоли в этом случае эффективно игнорирует трубопроводы. Чтобы сделать эту работу вы можете вызвать консоль.OpenStandardOutput() для получения дескриптора поток, в который должен передаваться вывод. Это работает только в том случае, если вывод передается по конвейеру, поэтому, если вы хотите обработать оба сценария, вам нужно открыть стандартный вывод и записать его и прикрепить к окну консоли. Это означает, что вывод отправляется в окно консоли и в трубу, но это лучшее решение, которое я мог найти. Ниже код, который я использую для этого.

Как выводить в консоль из Windows Forms?

Сценарий.
1. Windows Forms. Подключаемся к БД.
2. Windows Forms. Создаём ДатаТабле.
3. Windows Forms. Нажимаем кнопку для вывода списка полей ДатаТабле.
4. Console. Выводим в Console список полей ДатаТабле.

Приведённый код выдаёт ошибку
Ошибка
Ошибка CS0122 ‘Form1.dt_025″ недоступен из-за его уровня защиты.

Вопрос
1. Как правильно организовать код, чтобы можно было вывести список полей в консоль?
2. При наличии, другие замечания по организации кода?

Как сделать из TextBoxa консоль на Windows Forms?
Я хочу сделать консоль на подобии как в CS

Консоль в windows forms
Всем привет. Подскажите как решить задачку. В приложении windows forms пытаюсь чтобы при нажатии.

Создать консоль из Windows Forms
Я хочу создать консольную программу. Мне нужно чтобы он был из Windows Forms, так как мне нужно.

Стилизованная консоль в Windows Forms
Помогите написать программу: нужно сделать консоль в Windows Form, то есть 2 textbox и кнопка. В 1.

RuningMan,
Сделал согласно вашей рекомендации.
Нажимаю «button70», никакой реакции.
Ошибок нет.
Консоль не запускается.

Может что-нибудь ещё нужно сделать?

Тематические курсы и обучение профессиям онлайн
Профессия‌ С#-разработчик‌ (Skillbox)
Архитектор ПО (Skillbox)
Профессия Тестировщик (Skillbox)

Решение

Так у вас консоль не открыта ещё?
Нет у меня студии чтобы показать.
В свойствах проекта нужно выбрать приложение не Windows
а Console.

Только при таких настройках, консоль будет открыта с самого запуска приложения.

Добавлено через 4 минуты
Вам нужно консоль по нажатию кнопки открыть?

Вот ещё поискал

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Консоль при компиляции Windows Forms приложения
В JavaScript я привык при отладке выводить в консоль значения переменных ( для проверки корректной.

Windows Forms и Console(out): в консоль не выводится информация
Добрый вечер, сразу к сути: Program.cs using System.Runtime.InteropServices; . static.

Обучение языку с Windows Forms. Почему консоль везде на первом месте?
Здравствуйте! Начал пытаться учить Шарп, до этого учил VB.net (как и многие наверно). В бэсике я.

What is the Purpose of Console.WriteLine() in Winforms

I once saw the source code of a winform application and the code had a Console.WriteLine(); . I asked the reason for that and i was told that it was for debugging purposes.

Pls what is the essence of Console.WriteLine(); in a winform and what action does it perform because when i tried using it, it never wrote anything.

Читайте также:  Windows docker configuration file

4 Answers 4

It writes to the Console.

The end user won’t see it, and to be honest its much cleaner to put it into a proper log, but if you run it through VS the Console window will populate.

Winforms are just console apps that show windows. You can direct your debug info to the console app.

As you can see in the below example there is a command that attaches the parent window then pumps info to it.

You wouldn’t really use it normally but if you’ve attached a Console or use AllocConsole, it will function like in any other console application and the output will be visible there.

For quick debugging, I prefer Debug.WriteLine but for a more robust solution, the Trace class may be preferable.

It wouldn’t perform anything unless the Console was redirected to say the Output window. Really, they should be leveraging Debug.WriteLine instead.

The benefit of Debug.WriteLine is that it gets optimized away when building in Release mode.

NOTE: as pointed out by Brad Christie and Haedrian, apparently it will in fact write to the Console window in Visual Studio when running a Windows Forms application. You learn something new every day!

Вызов консоли в WinForm приложении

Как переделать с консоли на WinForm?
Первое слово в строке перевести в верхний регистр(большие буквы), как это реализовать в WinForm .

Вызов форм из консоли
Здравствуйте, уже неделю пытаюсь решить задачу, но пока результатов мало.. Задание: вызвать из.

Вызов консоли с winforms
мне нужно ввести несколько параметров с консоли в проекте winforms, но после первого ввода выдает.

Вызов из консоли системы
Добрый день всем. Скажу сразу — я любитель. C# — мое хобби что ли. Вопрос: Есть форма.

конечно реально. Какую именно консоль?

если просто консольное приложение надо:

Обычную консоль, как в консольном приложении.

Например ,что-бы считать данные можно было так :

как вызвать я написал, а как обеспечить синхронизацию ,сам придумай. Варианты есть разные.
Можешь через временный фаил.

Вот ещё почитай, хотя там тоже самое что я написал.
Запуск консольного приложения из WindowsForm

или ты как объект(класс объявить) хочешь в винформсе создать консль?

Именно это и хочу .

Идея в следующем :

Есть основная форма . В определенный момент она должна открыть консоль и считать оттуда введенные данные .

Решение

Решение

Спасибо огромное ,именно то что нужно было.

В Шилдте или Троелсене такого вроде нет.

И вопрос — когда создается консольное приложение то тоже импортируется эта библиотека?

Тематические курсы и обучение профессиям онлайн
Профессия‌ С#-разработчик‌ (Skillbox)
Архитектор ПО (Skillbox)
Профессия Тестировщик (Skillbox)

где вы инфу по таким вещам берете? Имею в виду:

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Вызов winform из unity
Как из юнити приложения вызвать винформ? просто подключить using System.Windows.Forms; а затем.

Вывод консоли в оконном приложении
Мне нужно затестировать как работает функция, т.е. выводить каждую операцию. Что — то.

Вызов функции в .NET-приложении
Нужно решить не особо сложную задачу из умножения матриц. Решил использовать для этой цели matlab.

Вызов действия в стороннем приложении
можно ли как-то вызвать действие чтобы файл его выполил?

Оцените статью