Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Медведев_С++_CLI_C#_Java_J#.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
5.17 Mб
Скачать

4.2Консольный ввод и вывод

C++/CLI и C#. Языки программирования C++/CLI и C# используют библиотеку .NET Framework, содержащую набор классов ввода/вывода. Среди классов пространства имён System есть класс Console, который содержит статические функции ввода/'вывода на консоль.

Статическая функция

static int Read();

вводит символ как объект типа int, требуя преобразования его в тип char.

Статическая функция

static int ReadLine();

вводит строку символов типа String, пока не будет нажата клавиша Enter.

Для вывода используются статические функции:

static void Write(String fmt, params object [] args);

static void WriteLine(String fmt, params object [] args);

Первая функция выводит значения аргументов args в соответствии с указаниями строки форматирования fmt. Вторая функция дополнительно завершает вывод переводом строки.

Пример 4.2,1 иллюстрирует особенности применения функций консольного ввода-вывода и их различия для языков C++/CLI, Java и C#. В примере 4.2.1 использованы целочисленная переменная и массив (строка) символов. Обратите внимание, что статическую функцию WtiteLine(), применяя, привязывают к классу через "::" на языке C++/CLI и через "." на языке C#.

Как видно из примера, ввод данных на языке Java требует создания дополнительных объектов и обязательной обработки возможных ошибок при вводе некорректных данных.

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

Пример 4.2.1. Консольный ввод и вывод на языках C++/CLI, Java и C#.

////////////////////

// C++/CLI

#include "stdafx.h"

using namespace System;

Void main (void)

{

String ^st; // Строка st

Console::Write("Введи строку символов>");

st= Console::ReadLine(); // Ввести строку с консоли

Console::WriteLine("s= " + st); // Вывести строку на консоль

int x; // Целочисленная переменная x

// Ввод целого числа в виде строки и преобразование её в число x

Console::Write("Введи целое число>");

x= System::Convert::ToInt32(Console::ReadLine());

// Вывод преобразованного в строку числа x

Console::WriteLine ("x= " + x.ToString()); // Вариант 1

Console::WriteLine ("x= {0} ", x.ToString ()); // Вариант 2

}

Результат:

Введи строку символов>qwert

s= qwert

Введи целое число>123

x= 123

x= 123

// C#

using System;

namespace TestCSharp

{

class Program

{

static void Main(string[] args)

{

String st; // Строка st

Console.Write("Введи строку символов>");

st= Console.ReadLine();

Console.WriteLine ("st= " + st);

int x; // Целочисленная переменная x

Console.Write("Введи целое число>");

x = System.Convert.ToInt32(Console.ReadLine());

x+= 10;

Console.WriteLine ("x=" + x.ToString());

}

}

}

Результат:

Введи строку символов>qwert

st= qwert

Введи целое число>123

x=133

// Java и J#

Import java.Io.*;

public class Test

{

public static void main(String[] args)

{

String st; // Строка st

try

{

BufferedReader bR= new BufferedReader (

new InputStreamReader (System.in));

System.out.println("Введи строку символов>");

st= bR.readLine ();

System.out.println ("st= " + st);