Показаны сообщения с ярлыком ввод-вывод. Показать все сообщения
Показаны сообщения с ярлыком ввод-вывод. Показать все сообщения

Ввод-вывод Java программ

Стандартный вывод

Данные производимые программой называются выводом. Этот вывод может направляться на различные устройства. Java программы могут посылать вывод в окно терминала используя объект, который называется стандартный вывод (standard out). Доступ к этому объекту может быть получен через публичное статическое финальное поле out в классе System. Стандартный вывод является объектом класса java.io.PrintStream, который предоставляет методы для печати значений. Эти методы преобразуют значения к их строковому представлению и печатают результирующие строки.

System.out.println("Original string: " + str);
System.out.print("Reversed string: ");
System.out.println(); 

Ввод-вывод в Python

Стандартные потоки ввода и вывода

Чтобы считать одно число из стандартного потока ввода, можно использовать, например, следующий код:
n = int(input())

Пример программы, которая принимает последовательность чисел и выводит их сумму:
n = int(input())
count = 0 total= 0 while (count < n): count = count + 1 total = total + int(input()) print(total)


Ввод-вывод в Haskell


Отправка сообщений об ошибке в диагностический поток

Функция error принимает в качестве аргумента строку и выводит эту строку в диагностический поток. 
factorial'' 0 = 1
factorial'' n = if n < 0 then error "arg must be >= 0" else n * factorial'' (n - 1)

Функция undefined всегда прерывает выполнение программы выводя в диагностический поток стандартное сообщение об ошибке.
Prelude> undefined
*** Exception: Prelude.undefined
С точки статической семантики Haskell не завершающаяся рекурсия и прерывание программы из-за ошибки это одно и то же. Считается, что в этом случае возвращаемым значением программы служит специальный символ, который обозначается символом ⊥ и называется по-английски "bottom", но на русский его иногда переводят как "основание". Это значение является элементом любого типа в Haskell. И функция undefined как раз является способом использовать это значение. Функция undefined подходит в качестве выражения любого типа. А это значит, что она может использоваться в любом месте программы. При программировании на Haskell принято использовать значение undefined для того чтобы маркировать еще не написанные части программы. Проверка типов гарантировано пройдет. Иногда функцию undefined используют для того чтобы поместить её в такое место до которого исполнение гарантировано не дойдет. В противном случае используют функцию error, а не undefined, если исполнение программы дойдет до этой точки, то лучше пользователю сообщить содержательную информацию о том что же за ошибка произошла.

Ввод-вывод в C++

Использование библиотеки <iostream>.
#include <iostream>
using namespace std;


Ввод

int a = 0;
int b = 0;
cin >> a >> b;


#include <iostream>

int main()
{
  int i = 42;
  double d = 3.14;

  std::cout << "Enter an integer and a double:\n";
  std::cin >> i >> d;
  std::cout << "Your input is " << i << ", " << d << "\n";

  return 0;
}


Оператор чтения из потока ввода (>>), обычно, игнорирует пробельные символы (это поведение можно изменить с помощью std::noskipws). Иногда это нежелательно. Для организации посимвольного ввода можно использовать метод get потока ввода.
char c = '\0';
while (cin.get(c)) { // на каждой итерации считываем один символ в переменную c
    /* здесь можно пользоваться значением прочитанным в переменную c */
    if (c != 'a')
        cout << c; // выводим символ, если он не равен 'a'
}
Метод get принимает на вход ссылку на переменную типа char. Метод get изменит значение переменной c, если чтение символа прошло удачно. Значение, которое возвращает метод get может быть интерпретировано как логическое значение. Это значение интерпретируется как false, если при чтении произошла ошибка или достигнут конец потока ввода. Т.е. цикл в примере выше прочитает весь ввод программы по одному символу за раз.

Что такое конец потока ввода? Если программа читает свой ввод из файла (это легко организовать средствами командной оболочки), то программа достигнет конца потока ввода, когда прочитает весь файл целиком. Если же программа читает ввод с клавиатуры, то конец потока ввода определяется специальным нажатием клавиш, например, в Linux это, как правило, сочетание Ctrl+D, а в Windows — Ctrl-Z.


Вывод

cout << "a + b = " << (a + b) << endl;


#include <iostream>

int main()
{
  int i = 42;
  double d = 3.14;
  const char *s = "C-style string";

  std::cout << "This is an integer " << i << "\n";
  std::cout << "This is a double " << d << "\n";
  std::cout << "This is a \"" << s << "\"\n";

  return 0;
}