Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.95/22: Рейтинг темы: голосов - 22, средняя оценка - 4.95
0 / 0 / 0
Регистрация: 05.06.2012
Сообщений: 75
1

scanf и printf или cin и cout

19.07.2013, 11:10. Просмотров 4036. Ответов 19
Метки нет (Все метки)

Скажите пожалуйста,что предпочтительнее использовать на олимпиадах по программированию да и вообще : scanf и printf или cin и cout
В большинстве авторских решений задач, и решений самих олимпиадников используется scanf и printf. Но я давно выучил cin и cout и не хочу менять ничего.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
#include<iostream>
 
using namespace std;
 
long a,b;
int main(){
  freopen("input.txt","r",stdin);
  freopen("output.txt","w",stdout);
  cin >> a >> b;
 cout << a+b <<;
  
  return 0;
}
Да и кстати, как в freopen определить конец файла
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.07.2013, 11:10
Ответы с готовыми решениями:

Заменить cin / cout на scanf / printf
#include&lt;iostream&gt; #include&lt;locale.h&gt; #include&lt;Windows.h&gt; #include&lt;string&gt; #include &quot;123.h&quot;...

Отличие printf/scanf от cout/cin
Я слышал, что принтф и сканф - это форматированный вывод данных , а син и саут - это потоковый...

Заменить cin cout на printf scanf
Преподаватель не хочет принимать код по минимальному основанию системы счисления , из-за того, что...

Замена printf на cout и scanf на cin
Пожалуйста, помогите заменить printf на cout и scanf на cin #define _CRT_SECURE_NO_WARNINGS...

19
398 / 354 / 36
Регистрация: 11.10.2010
Сообщений: 1,907
19.07.2013, 11:19 2
wwmwwm, ну вообще scanf/printf используют для скорости, но если вызвать вункцию ios_base::sync_with_stdio(0) можно достичь почти той же скорости
0
328 / 327 / 92
Регистрация: 16.12.2012
Сообщений: 544
19.07.2013, 11:19 3
Первое относится к Си, второе - к С++.
0
105 / 86 / 13
Регистрация: 29.08.2012
Сообщений: 539
19.07.2013, 11:20 4
cin cout работают через сканф и принтф. вы получите небольшие задержки на больших объемах данных из-за оберток. а вообще от задачи как всегда зависит.
0
398 / 354 / 36
Регистрация: 11.10.2010
Сообщений: 1,907
19.07.2013, 11:22 5
Цитата Сообщение от wwmwwm Посмотреть сообщение
Да и кстати, как в freopen определить конец файла
ну смотря как читаешь, можно просто использовать feof

Добавлено через 1 минуту
а вообще прочитай это http://codeforces.ru/blog/entry/5217?locale=ru
1
0 / 0 / 0
Регистрация: 05.06.2012
Сообщений: 75
19.07.2013, 11:22  [ТС] 6
Цитата Сообщение от Kukurudza Посмотреть сообщение
cin cout работают через сканф и принтф. вы получите небольшие задержки на больших объемах данных из-за оберток. а вообще от задачи как всегда зависит.
Тоисть cin и cout ссылаются на printf и scanf. А на много cin и cout медленнее?
0
398 / 354 / 36
Регистрация: 11.10.2010
Сообщений: 1,907
19.07.2013, 11:25 7
Цитата Сообщение от wwmwwm Посмотреть сообщение
Тоисть cin и cout ссылаются на printf и scanf. А на много cin и cout медленнее?
это привязку можно отключить изпользовав функцию которую я говорил, можешь поподробнее почитать по ссылке там и сравнение есть
0
Jesus loves me
Эксперт С++
5110 / 3122 / 353
Регистрация: 12.12.2009
Сообщений: 7,899
Записей в блоге: 2
19.07.2013, 11:25 8
Цитата Сообщение от wwmwwm Посмотреть сообщение
Тоисть cin и cout ссылаются на printf и scanf. А на много cin и cout медленнее?
Совсем не факт, cin и cout могут быть быстрее scanf/printf, потому что знают с какими типами работают (всмысле им не надо парсить строку вида "%s, %d, *[%s] etc").
0
105 / 86 / 13
Регистрация: 29.08.2012
Сообщений: 539
19.07.2013, 11:27 9
не ссылаются, а внутри себя их пользуют.
ну что значит на много медленнее? попытайтесь покрутить в циклах вывод на консоль и в файл и вы увидете что и в том и в другом случае они равны (я уверен что с погрешностью в 1-2%). в первом случае потому что вывод на консоль занимает какой то время а во втором потому что вы пишете на диск и тут уже именно эта операция занимает львиную долю времени.
0
398 / 354 / 36
Регистрация: 11.10.2010
Сообщений: 1,907
19.07.2013, 11:29 10
Цитата Сообщение от Kukurudza Посмотреть сообщение
не ссылаются, а внутри себя их пользуют.
ну что значит на много медленнее? попытайтесь покрутить в циклах вывод на консоль и в файл и вы увидете что и в том и в другом случае они равны (я уверен что с погрешностью в 1-2%). в первом случае потому что вывод на консоль занимает какой то время а во втором потому что вы пишете на диск и тут уже именно эта операция занимает львиную долю времени.
Kukurudza, вы мое сообщение читали? говорю же можно отключить
0
105 / 86 / 13
Регистрация: 29.08.2012
Сообщений: 539
19.07.2013, 11:30 11
если вы спрашиваете с контекстом "а че мне использовать в лабах по программингу, где я вывожу по 10 строк текста за все время программы", то пользуйте то что удобнее. если вам надо выводить что-то большое я бы взял и провел тесты. хотя уверен, что разница между ними минимальна.

Добавлено через 37 секунд
aram_gyumri я сначала написал свое, потом ваше только обновилось в вебе
0
Kastaneda
19.07.2013, 11:34
  #12

Не по теме:

Цитата Сообщение от aram_gyumri Посмотреть сообщение
а вообще прочитай это http://codeforces.ru/blog/entry/5217?locale=ru
Там тест вообще не о чем не говорит. Всмысле может он и правильно сделан и цифры там адекватные, но я не могу принять это на веру. Автор нигде не написал какие ключи компиляции использовал для сборки теста. Поэтому я могу подумать, что он вообще все в дебаг режиме прогнал, отсюда такая разница между MSVS и MinGW.

0
Don't worry, be happy
16921 / 9797 / 1887
Регистрация: 27.09.2012
Сообщений: 24,296
Записей в блоге: 2
19.07.2013, 11:48 13
Цитата Сообщение от Kukurudza Посмотреть сообщение
не ссылаются, а внутри себя их пользуют.
Не факт!
0
398 / 354 / 36
Регистрация: 11.10.2010
Сообщений: 1,907
19.07.2013, 12:03 14
Цитата Сообщение от Kastaneda Посмотреть сообщение
Там тест вообще не о чем не говорит. Всмысле может он и правильно сделан и цифры там адекватные, но я не могу принять это на веру. Автор нигде не написал какие ключи компиляции использовал для сборки теста. Поэтому я могу подумать, что он вообще все в дебаг режиме прогнал, отсюда такая разница между MSVS и MinGW.
Kastaneda, это чисто для олимпиад делалось и помоему автор использовал ключи которыми компилируют на кодфорсес

Добавлено через 3 минуты
Kastaneda, вот тут еще одно сравнение http://codeforces.ru/blog/entry/562
0
Jesus loves me
Эксперт С++
5110 / 3122 / 353
Регистрация: 12.12.2009
Сообщений: 7,899
Записей в блоге: 2
19.07.2013, 12:29 15
Цитата Сообщение от aram_gyumri Посмотреть сообщение
вот тут еще одно сравнение http://codeforces.ru/blog/entry/562
Тест тоже не правильный. Первое - я только в одном месте (и то в коментах) увидел какое-то упоминание ключей компиляции, второе - сам автор подумал, что файл может лежать в кеше после первого прочтения, но сам же не учел это. Поэтому все показатели, после первого прочтения файла, можно считать неправильными.
Третье - можно же взять самому написать подобный тест, только на этот раз сделать все правильно - правильно скомпилировать и правильно запустить. И выложить результаты сюда
0
398 / 354 / 36
Регистрация: 11.10.2010
Сообщений: 1,907
19.07.2013, 15:28 16
Kastaneda, сейчас попробую сделать

Добавлено через 32 минуты
сделал простенький тест 10000000 int-ов, мой проц Intel Pentium B980 2.4 GHz
компилировал так
Код
g++ -O2 test.cpp -o test
вот результаты
Код
std::cin                     16.81 17.21 16.95
scanf                        2.20 2.25 2.24
std::cin с без синхронизации 10.58 10.59 10.73
меня честно говоря результаты удивили

Добавлено через 3 минуты
буду рад если еще кто-нибудь протестирует
0
620 / 474 / 58
Регистрация: 18.09.2012
Сообщений: 1,688
19.07.2013, 17:07 17
aram_gyumri, лучше cout, там время чисте будет.
0
Заблокирован
19.07.2013, 18:09 18
Цитата Сообщение от wwmwwm Посмотреть сообщение
scanf и printf или cin и cout
пиши на сях и забей на эту полуобъектную процедурщину си++
0
398 / 354 / 36
Регистрация: 11.10.2010
Сообщений: 1,907
19.07.2013, 23:50 19
Цитата Сообщение от duhast_vladisla Посмотреть сообщение
пиши на сях и забей на эту полуобъектную процедурщину си++
duhast_vladisla, я конечно тоже на си пишу, но на олимпиадах без stl туго
0
620 / 474 / 58
Регистрация: 18.09.2012
Сообщений: 1,688
20.07.2013, 00:57 20
duhast_vladisla, не соглашусь с вами) всётаки порой эти "недообъекты" очень упрощают жизнь.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.07.2013, 00:57

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Заменить scanf и printf на cin и cout
Помогите пожалуйста переделать #include &quot;iostream&quot; #include &quot;math.h&quot; using namespace std; ...

Cin и cout заменить на scanf и printf
Препод придрался к коду и требует, чтобы я cin и cout заменил на scanf и printf. Поможете? или хотя...

Заменить printf scanf на cout cin
#include&lt;iostream.h&gt; #include&lt;math.h&gt; #pragma argsused int main(int argc, char* argv) {int i;...

Заменить printf на cout, scanf на cin
Помогите заменить printf на cout ,scanf на cin, у меня не получается. int main() { int...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

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