Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.71
wwmwwm
0 / 0 / 0
Регистрация: 05.06.2012
Сообщений: 75
#1

scanf и printf или cin и cout - C++

19.07.2013, 11:10. Просмотров 2325. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.07.2013, 11:10
Здравствуйте! Я подобрал для вас темы с ответами на вопрос scanf и printf или cin и cout (C++):

Заменить cin / cout на scanf / printf - C++
#include&lt;iostream&gt; #include&lt;locale.h&gt; #include&lt;Windows.h&gt; #include&lt;string&gt; #include &quot;123.h&quot; using namespace std; float...

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

Переделать scanf и printf в cin и cout - C++
#include &quot;stdio.h&quot; #include &quot;math.h&quot; int main() { float S=0; int n=3; printf(&quot;For\n&quot;); for (n=3; n &lt;= 9;...

printf и scanf против cin и cout - C++
Друзья мои,стал учить плюсы и столкнулся с кучей противоречий. То что в С нет cin/cout я знаю. Но вот в С++ возможно использование...

Переделать scanf, printf в cin, cout - C++
Как в этом коде заменить scanf, printf на cin, cout. А FILE * f = fopen изменить на ifstream in(&quot;INPUT.TXT&quot;); ofstream...

Заменить printf на cout, scanf на cin - C++
Помогите заменить printf на cout ,scanf на cin, у меня не получается. int main() { int i,j,k,n; float a,x; float s,p; ...

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

Добавлено через 1 минуту
а вообще прочитай это http://codeforces.ru/blog/entry/5217?locale=ru
1
wwmwwm
0 / 0 / 0
Регистрация: 05.06.2012
Сообщений: 75
19.07.2013, 11:22  [ТС] #6
Цитата Сообщение от Kukurudza Посмотреть сообщение
cin cout работают через сканф и принтф. вы получите небольшие задержки на больших объемах данных из-за оберток. а вообще от задачи как всегда зависит.
Тоисть cin и cout ссылаются на printf и scanf. А на много cin и cout медленнее?
0
dr.curse
390 / 346 / 16
Регистрация: 11.10.2010
Сообщений: 1,907
19.07.2013, 11:25 #7
Цитата Сообщение от wwmwwm Посмотреть сообщение
Тоисть cin и cout ссылаются на printf и scanf. А на много cin и cout медленнее?
это привязку можно отключить изпользовав функцию которую я говорил, можешь поподробнее почитать по ссылке там и сравнение есть
0
Kastaneda
Jesus loves me
Эксперт С++
4703 / 2907 / 239
Регистрация: 12.12.2009
Сообщений: 7,406
Записей в блоге: 2
Завершенные тесты: 1
19.07.2013, 11:25 #8
Цитата Сообщение от wwmwwm Посмотреть сообщение
Тоисть cin и cout ссылаются на printf и scanf. А на много cin и cout медленнее?
Совсем не факт, cin и cout могут быть быстрее scanf/printf, потому что знают с какими типами работают (всмысле им не надо парсить строку вида "%s, %d, *[%s] etc").
0
Kukurudza
105 / 86 / 6
Регистрация: 29.08.2012
Сообщений: 539
19.07.2013, 11:27 #9
не ссылаются, а внутри себя их пользуют.
ну что значит на много медленнее? попытайтесь покрутить в циклах вывод на консоль и в файл и вы увидете что и в том и в другом случае они равны (я уверен что с погрешностью в 1-2%). в первом случае потому что вывод на консоль занимает какой то время а во втором потому что вы пишете на диск и тут уже именно эта операция занимает львиную долю времени.
0
dr.curse
390 / 346 / 16
Регистрация: 11.10.2010
Сообщений: 1,907
19.07.2013, 11:29 #10
Цитата Сообщение от Kukurudza Посмотреть сообщение
не ссылаются, а внутри себя их пользуют.
ну что значит на много медленнее? попытайтесь покрутить в циклах вывод на консоль и в файл и вы увидете что и в том и в другом случае они равны (я уверен что с погрешностью в 1-2%). в первом случае потому что вывод на консоль занимает какой то время а во втором потому что вы пишете на диск и тут уже именно эта операция занимает львиную долю времени.
Kukurudza, вы мое сообщение читали? говорю же можно отключить
0
Kukurudza
105 / 86 / 6
Регистрация: 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
Croessmah
Пришел
Эксперт CЭксперт С++
13565 / 7717 / 873
Регистрация: 27.09.2012
Сообщений: 18,998
Записей в блоге: 3
Завершенные тесты: 1
19.07.2013, 11:48 #13
Цитата Сообщение от Kukurudza Посмотреть сообщение
не ссылаются, а внутри себя их пользуют.
Не факт!
0
dr.curse
390 / 346 / 16
Регистрация: 11.10.2010
Сообщений: 1,907
19.07.2013, 12:03 #14
Цитата Сообщение от Kastaneda Посмотреть сообщение
Там тест вообще не о чем не говорит. Всмысле может он и правильно сделан и цифры там адекватные, но я не могу принять это на веру. Автор нигде не написал какие ключи компиляции использовал для сборки теста. Поэтому я могу подумать, что он вообще все в дебаг режиме прогнал, отсюда такая разница между MSVS и MinGW.
Kastaneda, это чисто для олимпиад делалось и помоему автор использовал ключи которыми компилируют на кодфорсес

Добавлено через 3 минуты
Kastaneda, вот тут еще одно сравнение http://codeforces.ru/blog/entry/562
0
Kastaneda
Jesus loves me
Эксперт С++
4703 / 2907 / 239
Регистрация: 12.12.2009
Сообщений: 7,406
Записей в блоге: 2
Завершенные тесты: 1
19.07.2013, 12:29 #15
Цитата Сообщение от aram_gyumri Посмотреть сообщение
вот тут еще одно сравнение http://codeforces.ru/blog/entry/562
Тест тоже не правильный. Первое - я только в одном месте (и то в коментах) увидел какое-то упоминание ключей компиляции, второе - сам автор подумал, что файл может лежать в кеше после первого прочтения, но сам же не учел это. Поэтому все показатели, после первого прочтения файла, можно считать неправильными.
Третье - можно же взять самому написать подобный тест, только на этот раз сделать все правильно - правильно скомпилировать и правильно запустить. И выложить результаты сюда
0
19.07.2013, 12:29
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.07.2013, 12:29
Привет! Вот еще темы с ответами:

Заменить cout на printf а cin на scanf - C++
#include &lt;iostream&gt; #include &lt;cmath&gt; using namespace std; int main() { int N, M, p; cout &lt;&lt; &quot;Введите размерность...

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

Заменить printf scanf на cout cin - C++
#include&lt;iostream.h&gt; #include&lt;math.h&gt; #pragma argsused int main(int argc, char* argv) {int i; float x,B,y; printf(&quot;\n B=&quot;);...

Заменить scanf и printf на cin и cout - C++
Помогите пожалуйста переделать #include &quot;iostream&quot; #include &quot;math.h&quot; using namespace std; int main() { float x = -2.0, A...


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

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

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