ввода-вывода? введи что-нибудь через >>
ответ:
потому же, почему char, int или массивы в C++ не являются классами, а являются атомарными типами (тогда как во многих языках можно сделать именно arr.length(), а не length(arr))
чтобы было () - нужно либо тупо сделать функцию print() (но это тупо по тому, что тогда в других местах, например при работе с файлами, будет уже что-то другое) либо сделать общий базовый класс stream и от него классов-наследников: для файлов (fstream, затем ifstream/ofstream), для консоли (cin, cout), для хранения в памяти (stringstream), для сетей и т. д.
в принципе можно было так сделать, но C++ все же достаточно минималистичный и заточенный под абсолютную гибкость, а такой класс хоть чуток, но ограничивает и вроде как не везде будет пригоден, где-то кому-то придется делать велосипед, а не наследовать свой поток ввода-вывода от stream. и тогда он не будет совместим со стандартными. поэтому не стали делать класс с методом, а сделали оператор.
C/C++
Почему в С++ в отличии от других языков команда ввода-вывода использует << вместо стандартных ();?
Вы будете смеяться, но в С++ это называется СТАНДАРТНЫМ вводом/выводом.
Отродясь () не было стандартным для других языков. Например, в Бейсике PRINT a,b, а в Фортране print *,a,b
1 - это не команда, а операторы.
2 - если в C++ есть операторы и перегрузка и есть операторы << и >> разве не клёво указывать направление откуда куда?
3 - можете их перегрузить, можете использовать функции - никто не мешает.
Ну как-то так.
ЗЫЖ Убрал у себя момент про стандарт, т. к. Николай написал быстрее, чем я стал обновлять ответ по этому-же поводу =)
2 - если в C++ есть операторы и перегрузка и есть операторы << и >> разве не клёво указывать направление откуда куда?
3 - можете их перегрузить, можете использовать функции - никто не мешает.
Ну как-то так.
ЗЫЖ Убрал у себя момент про стандарт, т. к. Николай написал быстрее, чем я стал обновлять ответ по этому-же поводу =)
Скобки ( ) это вызов функции, а не ввод-вывод. Да, в большинстве популярных языков вызов функции обозначается скобками. Но есть языки, в которых функции вызываются без использования скобок.
Операторы << >> используются в C++ для ввода-вывода, потому что так захотелось авторам библиотеки iostream (возможно, это не автор языка C++ Б. Страуструп).
Операторы << >> используются в C++ для ввода-вывода, потому что так захотелось авторам библиотеки iostream (возможно, это не автор языка C++ Б. Страуструп).
потому что это коротко и просто
// c++
cin >> x >> y >> z ;/ ввести в переменные различные значение
// обработать по надобности
cout << x << " " << y << " " << z ; << endl; // и вывести результат
// c++
cin >> x >> y >> z ;/ ввести в переменные различные значение
// обработать по надобности
cout << x << " " << y << " " << z ; << endl; // и вывести результат
>> ...команда ввода-вывода ...
Ты что то выдумал.
В с++ нет команды ввода-вывода.
">>" - в с++ является оператором.
Как и почти любой другой оператор его можно перегрузить и в назначенной функции с операндами можно выполнять любые манипуляции. Хоть картошку чистить через подключенную ардуинку
Ты что то выдумал.
В с++ нет команды ввода-вывода.
">>" - в с++ является оператором.
Как и почти любой другой оператор его можно перегрузить и в назначенной функции с операндами можно выполнять любые манипуляции. Хоть картошку чистить через подключенную ардуинку
А почему тебя зовут Санек, а не как других - Сергей, Михаил и так далее?
ПОТОМУ ЧТО ТАК НАЗВАЛИ. Вот так захотел автор.
Ну или, говоря проще, потому что гладиолус!
ПОТОМУ ЧТО ТАК НАЗВАЛИ. Вот так захотел автор.
Ну или, говоря проще, потому что гладиолус!
Николай Руденко
Ясно гладиолус так гладиулус. Я думал тут особые скрытые философские размышления автора между символами, а оно вот как.
Александр Захаров
Да потому что направление значения в поток ввода-вывода очень логично обозначить стрелками. Куда логичнее, чем скобками, а C++, в отличие от С, это мог.
Это перегруженные операторы, они символизируют потоки ввода и вывода/файлового считывания и записи
ну так-то там и printf есть с пресловутыми круглыми скобками
а оператор битового сдвига используется для записи/чтения из файла (в том числе для файлов ввода/вывода)
а оператор битового сдвига используется для записи/чтения из файла (в том числе для файлов ввода/вывода)
Так сложилось.
Сделали так.
Похожие вопросы
- Перегрузка операторов ввода-вывода для файловых потоков
- Помогите пожалуйста уже голову сломал, ничего не получается, когда перегружаю шаблонный оператор << ,
- Помогите добавить ввод чисел в массив матрицы на языке Си
- Что такое #include <iostream>, std using namespace std В языке программирования C++?
- Мусор вместо вывода
- Почему вместо двумерного массива мы используем двойной указатеть?
- Задача(написать надо с использованием for или while. желательно не использовать неизвестные команды для новичка)
- Дан массив из N элементов (N < 1000), причем N - четное. Вставить в середину массива сумму всех элементов.
- Какие отличия(простыми словами) в языках программирования Java и C++? Что лучше изучать. У какого больше возможностей?
- C++. Как сделать ввод переменной (размера) на основе которой будет ввод массива?
[да_и_сейчас_есть даже_под: iOS13]