Форум программистов, компьютерный форум CyberForum.ru

Что такое CIN и COUT - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 24, средняя оценка - 4.96
AzaKendler
 Аватар для AzaKendler
214 / 116 / 9
Регистрация: 30.05.2011
Сообщений: 1,772
21.01.2012, 22:40     Что такое CIN и COUT #1
фоном звучит вопрос printf и scanf - осмелюсь написать что они используют те же механизмы

не знаю покажется ли это кому то интересным, но если отбросить тонны проверок, форматирования, преобразований и вызовов которые осуществляются при использовании cin или cout, то останется совсем немного.
2 функции WIN API (в моем случае), и буфер. ну и еще одна переменная



C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <Windows.h>
 
 
int main (int args, char* ar[])
{
 
    char buf [100];
 
    DWORD w;
 
    ReadFile((HANDLE)3,buf,90,&w,0); // это cin
 
    WriteFile((HANDLE)7,buf,90,&w,0); // это cout
 
 
    return 0;
}
магические цифры 3 и 7 - результат вычислений функций из <IO>(их и еще пару объектов я убрал, равно как и включение IO), они сообщают видимо винде что надо обратится к консольке. К сожалению посмотреть как оно дальше внутри устроено нет возможности. Если найдете - то киньте ссылку почитать пожалуйста. Собственно в этом и заключается мой вопрос.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.01.2012, 22:40     Что такое CIN и COUT
Посмотрите здесь:

Не работают cin и cout C++
C++ НЕ находит cin cout
cin cout C++
Cin и cout не компилируется C++
C++ перезагрузка cin, cout
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
NoMasters
Псевдослучайный
1737 / 1080 / 69
Регистрация: 13.09.2011
Сообщений: 3,093
21.01.2012, 22:52     Что такое CIN и COUT #2
Открой для себя гугл, реализации присутствуют в открытом доступе вместе с описаниями.
alex_x_x
бжни
 Аватар для alex_x_x
2441 / 1646 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
21.01.2012, 23:00     Что такое CIN и COUT #3
Цитата Сообщение от AzaKendler Посмотреть сообщение
К сожалению посмотреть как оно дальше внутри устроено нет возможности
всмысле как устроены функции winapi?
реализация лежит в Kernel32.dll и посмотреть ее невозможно (ибо не опен сурс вам)
только разве в единожды слитых исходниках винды
Chelioss
179 / 179 / 4
Регистрация: 08.01.2011
Сообщений: 1,131
21.01.2012, 23:01     Что такое CIN и COUT #4
Я предполагаю, что cin - это
C++
1
2
3
4
5
6
ReadConsoleInput(
            hConsoleInput,                //  дескриптор буфера ввода консоли
            buffer ,              //  буфер данных
            nLength ,                       //  число записей для чтения
            &numberOfEventsRead      //  число прочитанных записей
            );
А cout - WriteConsoleOutput
NoMasters
Псевдослучайный
1737 / 1080 / 69
Регистрация: 13.09.2011
Сообщений: 3,093
21.01.2012, 23:04     Что такое CIN и COUT #5
alex_x_x, он с тем же успехом может посмотреть POSIX-реализацию, смысл один в один.
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,271
22.01.2012, 01:03     Что такое CIN и COUT #6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <stdio.h>
using namespace std;
 
 
int main (){
 
 printf ("%x\n", &cin);
 printf ("%x", sizeof(istream));
 
 getchar ();
 return 0;
}
Запускай, приаттачивайся OllyDbg к процессу и смотри чё такое cin
AzaKendler
 Аватар для AzaKendler
214 / 116 / 9
Регистрация: 30.05.2011
Сообщений: 1,772
22.01.2012, 14:51  [ТС]     Что такое CIN и COUT #7
Цитата Сообщение от Chelioss Посмотреть сообщение
Я предполагаю, что cin - это
нее. я про студию. у меня именно те функции выдергивает что я написал.
А cout проходит транзитом через sprinf_s


Добавлено через 1 минуту
Цитата Сообщение от kravam Посмотреть сообщение
приаттачивайся OllyDbg к процессу и смотри чё такое cin
ты прав. скорее всего все упрется в асм. и искать ничего не нада в гуглах.

Хотелось понять просто процесс подготовки консольки и того как система выводит в нее. Но уже стало ясно что рановато пока это

Ладно. вопрос закрывается из-за преждевременности
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.01.2012, 15:18     Что такое CIN и COUT
Еще ссылки по теме:

C++ Не работают cin и cout. iostream included, но пишет, что это неизвестные идентификаторы. VC++ 2008 express
C++ Cin cout
C++ Добавить cin и cout

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
22.01.2012, 15:18     Что такое CIN и COUT #8
Цитата Сообщение от AzaKendler Посмотреть сообщение
Хотелось понять просто процесс подготовки консольки и того как система выводит в нее. Но уже стало ясно что рановато пока это
Это не имеет отношения к С++, о таких вещах пишут в книгах по операционным системам.
Yandex
Объявления
22.01.2012, 15:18     Что такое CIN и COUT
Ответ Создать тему
Опции темы

Текущее время: 13:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru