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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 34, средняя оценка - 4.91
Staier
0 / 0 / 0
Регистрация: 04.10.2009
Сообщений: 5
#1

cin cout и fscan fprintf - C++

14.07.2010, 19:45. Просмотров 4400. Ответов 20
Метки нет (Все метки)

Здравствуйте!
Помогите понять чем они отличаются. учили в школе както через фсканф и фпринтф хотел разобраться с cin и сout. в fscanf понятно что подключаешь файл через fopen или freopen и дальше юзаешь его при чтении/выводе. а как быть с cin cout?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.07.2010, 19:45
Здравствуйте! Я подобрал для вас темы с ответами на вопрос cin cout и fscan fprintf (C++):

Cin cout - C++
записать через сin cout printf ("a=", i); scanf ("%f", &a);

Cout cin - C++
Ребят, мы пишем cout << .... и cin >> .... Как называются эти операторы << и >>? И что они делают?

cin cout - C++
Как выводить через cin cout а не через printf. А то получается ерунда #include <stdio.h> #include <locale.h> #include <string> ...

Ошибка на cout и cin - C++
немогу понять в чем ошибка, есть код программы, вроде бы все правильно написано, но возможно я где-то допустил ошибку, но почему-то в упор...

операторы cin, cout - C++
Здравствуйте! Написала элементарную программу: #include <iostream> using namespace std; int main() { cout<< "Введите...

Не работают cin и cout - C++
Компилю на С++. Впервые. Использую Borland C++ Builder 6.0 Прочитал много разных самоучителей, энциклопедий по С++ Создаю приложение...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
CyBOSSeR
Эксперт C++
2300 / 1670 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
14.07.2010, 20:06 #2
Цитата Сообщение от Staier Посмотреть сообщение
фсканф и фпринтф
Если пишешь на C++ - забудь о них, это наследие Си.
Цитата Сообщение от Staier Посмотреть сообщение
cin cout
Данные потоки предназначены для работы с консолью.
Для работы с файлами используй ifstream и ofstream.
alex_x_x
14.07.2010, 22:11
  #3

Не по теме:

Цитата Сообщение от CyBOSSeR Посмотреть сообщение
Если пишешь на C++ - забудь о них, это наследие Си.
ладно уж, часто проще ними, чем нагромождать манипуляторами и прочим

CyBOSSeR
Эксперт C++
2300 / 1670 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
14.07.2010, 22:50 #4
Цитата Сообщение от alex_x_x Посмотреть сообщение
ладно уж, часто проще ними, чем нагромождать манипуляторами и прочим
Простота не должна быть в ущерб безопастности.
easybudda
Модератор
Эксперт CЭксперт С++
9530 / 5523 / 932
Регистрация: 25.07.2009
Сообщений: 10,608
14.07.2010, 22:58 #5
Цитата Сообщение от CyBOSSeR Посмотреть сообщение
Простота не должна быть в ущерб безопастности.
Ну это в первую очередь от рук программиста зависит. Можно и с printf()/scanf() всё кошерно сделать, а можно и с cin/cout такой блудняк устроить, что сам чёрт не разберёт...

Цитата Сообщение от Staier Посмотреть сообщение
Помогите понять чем они отличаются.
printf()/scanf() - функции языка С для работы с потоками ввода/вывода. В С++ работа с потоками ввода/вывода основана на классах, соответственно cin - класс потока ввода, cout - вывода.
CyBOSSeR
Эксперт C++
2300 / 1670 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
14.07.2010, 23:07 #6
Цитата Сообщение от easybudda Посмотреть сообщение
Ну это в первую очередь от рук программиста зависит. Можно и с printf()/scanf() всё кошерно сделать, а можно и с cin/cout такой блудняк устроить, что сам чёрт не разберёт...
Руки, конечно, руками, но printf с его эллипсисом и полностью отсутсвующей проверкой типов слишком благоприятная среда для ошибок, чтобы его использовать в C++. Даже при наличии прямых рук, растущих из правильного места.
alex_x_x
бжни
2447 / 1652 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
14.07.2010, 23:24 #7
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
#define DEBUG
 
#ifdef DEBUG
#define DBG_MSG( fmt, ... ) \
            printf( "<DBG>%s (%d) %s: "fmt"\n", \
            __FILE__, __LINE__,__FUNCTION__,__VA_ARGS__  ); 
#else
            #define DBG_MSG( fmt, ... )
#endif
 
int main(){
  DBG_MSG( "%d", 20 );
  return 0;
}
ну перепишите с cout'ом
CyBOSSeR
Эксперт C++
2300 / 1670 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
14.07.2010, 23:29 #8
Цитата Сообщение от alex_x_x Посмотреть сообщение
ну перепишите с cout'ом
И что это мне даст?
alex_x_x
бжни
2447 / 1652 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
14.07.2010, 23:30 #9
ничего, а что мне даст идейный отказ от неверного printf?
CyBOSSeR
Эксперт C++
2300 / 1670 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
14.07.2010, 23:31 #10
Цитата Сообщение от alex_x_x Посмотреть сообщение
ничего, а что мне даст идейный отказ от неверного printf?
Безопастность. Или удобство превыше всего?
alex_x_x
бжни
2447 / 1652 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
14.07.2010, 23:32 #11
одному без другого плохо скорее
CyBOSSeR
Эксперт C++
2300 / 1670 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
14.07.2010, 23:34 #12
Цитата Сообщение от alex_x_x Посмотреть сообщение
одному без другого плохо скорее
Вот стандарт новый выйдет и благодаря шаблонам с переменным числом аргументов будет и удобство и безопастность.
Evg
Эксперт CАвтор FAQ
17626 / 5850 / 376
Регистрация: 30.03.2009
Сообщений: 16,133
Записей в блоге: 26
14.07.2010, 23:47 #13
Может дело в привычке, но когда гляжу на printf из 12 аргументов, то хотя бы понятно, что получу в результате. Глядя на cout как-то пространственного воображения не всегда хватает понять, что получится в результате

Добавлено через 2 минуты
Более того, есть функции типа vsprintf или vfprintf (грубо говоря всё то, что в качестве параметра умеет принимать va_list). В Си++ что-то такого не видел нигде
CyBOSSeR
Эксперт C++
2300 / 1670 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
14.07.2010, 23:53 #14
Цитата Сообщение от Evg Посмотреть сообщение
Более того, есть функции типа vsprintf или vfprintf (грубо говоря всё то, что в качестве параметра умеет принимать va_list). В Си++ что-то такого не видел нигде
Есть аналоги потоков ввода/вывода для работы со строками: istringstream, ostringstream, stringstream.
Evg
Эксперт CАвтор FAQ
17626 / 5850 / 376
Регистрация: 30.03.2009
Сообщений: 16,133
Записей в блоге: 26
14.07.2010, 23:55 #15
Цитата Сообщение от CyBOSSeR Посмотреть сообщение
Есть аналоги потоков ввода/вывода для работы со строками: istringstream, ostringstream, stringstream.
А можешь привести пример, как этим хозяйством пользоваться?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.07.2010, 23:55
Привет! Вот еще темы с ответами:

Добавить cin и cout - C++
#include &lt;iostream&gt; using namespace std; struct Node { int numer; //информационный элемент int pos; //информационный...

НЕ находит cin cout - C++
Вроде бы подключил заголовочные файлы. Почему не находит cin и cout они же вроде бы должны быть в iostream #include &lt;stdafx.h&gt; ...

перезагрузка cin, cout - C++
Помогите корректно перезагрузить эти два оператора! #include &lt;iostream&gt; using namespace std; class Fractions{ public: ...

Cin и cout не компилируется - C++
Начал изучать С++, и возникли проблемы с cin и cout, пишет Undefined symbol, хотя std прописан. Если пишу std::cin то выдает 'cout' is...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
14.07.2010, 23:55
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru