Форум программистов, компьютерный форум, киберфорум
Священные войны
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.85/62: Рейтинг темы: голосов - 62, средняя оценка - 4.85
 Аватар для AzaKendler
214 / 116 / 14
Регистрация: 30.05.2011
Сообщений: 1,772
Записей в блоге: 15

prinf(.._s?) vs cout

21.08.2011, 20:13. Показов 12326. Ответов 96
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
о насущном для меня как новичка. если я правильно понял cout это работа с потоком?(про них не читал еще), а prinf? шо це? c чем работает? В нете пишут что на больших объемах ввода вывода printf/scanf быстрее пары cin/cout. Растолкуйте что к чему. Тут много опытных программистов. Что лучше использовать и для чего. Напишите пожалуйста.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.08.2011, 20:13
Ответы с готовыми решениями:

Не использовать функцию prinf
Задача состоит в том, что у меня есть робочая программа, но! Есть одно МАЛЕЕНЬКОЕ но: нужно чтоб в программе не использовалась функцыя...

Вывести отформатированную строку prinf'ом в переменную
Здравствуйте!! Возникла необходимость вывести отформатированную строку prinf'ом в переменную. Нужно для представления массива в ascii,...

Переделать потоки ввода-вывода на prinf и scanf
#include <iostream.h> #include <conio.h> #include <stdlib.h> int x,y,i,j,n1,m1,n2,m2,z; void cret(void) { cout<<"\nVvedit...

96
бжни
 Аватар для alex_x_x
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
25.08.2011, 11:16
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от accept Посмотреть сообщение
аргументы в вызове не проверяются во время работы программы ?
ну в с++ при компиляции и линковке проверяются
C
1
2
3
4
5
6
7
8
9
10
// main.c
 
int f (int* a);
 
int main()
{
  int a = 10;
  f(&a);
  return 0;
}
C
1
2
3
4
5
6
// f.c
 
int f (int* a, int* b)
{
  return (*b = *a);
}
Bash
1
2
3
btuser@btuser-desktop:~/c$ gcc -O0 main.c f.c
btuser@btuser-desktop:~/c$ ./a.out 
Segmentation fault

Цитата Сообщение от iama Посмотреть сообщение
Баги можно найти везде.
зачем только их встраивать в язык
0
 Аватар для AzaKendler
214 / 116 / 14
Регистрация: 30.05.2011
Сообщений: 1,772
Записей в блоге: 15
25.08.2011, 11:41  [ТС]
Цитата Сообщение от iama Посмотреть сообщение
или просто сам символ, не выполняя над ним никаких преобразований
опять какой то очень важный момент.
символы попадают в поток в том виде в котором они есть? происходит подстановка численного значения символа из таблицы символов? разложения на биты не происходит?

например поток берет 1 в чаре. что при этом происходит? 00000001?
или поток берет 32 битный инт. тут идет 00000000 00000000 00000000 00000001?
что то я совсем запутался

Добавлено через 24 минуты
и по решению вопрос Откуда читает scanf ?
тут я вроде бы понял. берет инфо из одного файла. вывод - в другой файл.
0
 Аватар для iama
1360 / 988 / 119
Регистрация: 30.07.2010
Сообщений: 5,297
25.08.2011, 11:48
Цитата Сообщение от AzaKendler Посмотреть сообщение
символы попадают в поток в том виде в котором они есть? происходит подстановка численного значения символа из таблицы символов? разложения на биты не происходит?
Точно сказать не могу, даже не знаю, где почитать об этом можно, может, подскажет кто...
Цитата Сообщение от AzaKendler Посмотреть сообщение
тут я вроде бы понял. берет инфо из одного файла. вывод - в другой файл.
Если мое же решение перенаправить на чтение\запись файловый потоков, так:
C
1
2
freopen("input.txt", "r", stdin);
freopen("output.txt", "w", stdout);
То скорость выполнения не изменится, насчет этого не заморачивайтесь, в жизни разница будет только что в первом случае мы тратимся на графическую обработку вывода, во втором - на запись на хард.
0
 Аватар для AzaKendler
214 / 116 / 14
Регистрация: 30.05.2011
Сообщений: 1,772
Записей в блоге: 15
25.08.2011, 12:11  [ТС]
iama, я просто правда не понял откуда читает scanf, в цикле все время надо вводить значения из консоли? сорри за глупые вопросы.
0
 Аватар для iama
1360 / 988 / 119
Регистрация: 30.07.2010
Сообщений: 5,297
25.08.2011, 12:15
AzaKendler, формат входного файла в том примере - здесь, если чего непонятно - пиши
0
 Аватар для AzaKendler
214 / 116 / 14
Регистрация: 30.05.2011
Сообщений: 1,772
Записей в блоге: 15
25.08.2011, 12:24  [ТС]
iama, если инфа лежит в файлике то понятно.

. не понимаю как в решении инфа
5
1 1 1 1 0
1 0 1 0 1
1 1 1 0 1
1 0 0 0 1
0 1 1 1 1
попадет в обработку?
n например это 5. с консоли? и далее по циклам с консоли?
как считается скорость тогда, если мы все время вводим что то. этот момент что то никак не вкурю
0
 Аватар для iama
1360 / 988 / 119
Регистрация: 30.07.2010
Сообщений: 5,297
25.08.2011, 12:26
AzaKendler, либо все из (и в) консоли, либо все из файлов.
0
 Аватар для AzaKendler
214 / 116 / 14
Регистрация: 30.05.2011
Сообщений: 1,772
Записей в блоге: 15
25.08.2011, 12:55  [ТС]
iama, ок. т.е. тестирующий сервер сам лупит значения в консоль с огромной скоростью и это позволяет провести тест. Я что то зациклился на том что в консоль обычно человек вводит. Луп так сказать случился

Добавлено через 25 минут
из всего того что написано. напросился такой вывод. printf быстрее cout удобнее, проще, безопаснее.
0
 Аватар для iama
1360 / 988 / 119
Регистрация: 30.07.2010
Сообщений: 5,297
25.08.2011, 14:47
AzaKendler, насчет удобней и проще - я бы не спешил
0
 Аватар для AzaKendler
214 / 116 / 14
Регистрация: 30.05.2011
Сообщений: 1,772
Записей в блоге: 15
25.08.2011, 15:18  [ТС]
iama, я имел ввиду проще в использовании, интуитивно понятнее(сужу по себе как начинающему), чтобы пользоваться printf - надо внимательно изучить управляющие последовательности и грамотно их использовать чтобы не получать ошибки. а cout - не читая особо можно посмотреть на мемберы в любой среде и уже что то понять.
0
Эксперт JavaЭксперт С++
 Аватар для M128K145
8384 / 3617 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
25.08.2011, 17:43
Цитата Сообщение от AzaKendler Посмотреть сообщение
printf быстрее cout удобнее, проще, безопаснее.
Цитата Сообщение от AzaKendler Посмотреть сообщение
printf - надо внимательно изучить управляющие последовательности и грамотно их использовать чтобы не получать ошибки. а cout - не читая особо можно посмотреть на мемберы в любой среде и уже что то понять.
с такой аргументацией могу сказать только одно - наберитесь опыта и ваши аргументы рассыпятся.
Не нужно особой хитрости, чтобы использовать принтф. Все тоже достаточно просто. А по поводу простоты, то взгляните на эту тему Флаги форматирования и манипуляторы
0
 Аватар для AzaKendler
214 / 116 / 14
Регистрация: 30.05.2011
Сообщений: 1,772
Записей в блоге: 15
25.08.2011, 20:20  [ТС]
Цитата Сообщение от M128K145 Посмотреть сообщение
наберитесь опыта
этим я и стараюсь заниматься. форум тоже неплохо помогает
хотя в флагах на мой взгляд нет ничего страшного. просто так уж исторически сложилось что я начал с cout. И только потом познакомился с printf. Ну и решил уже спросить здесь у тех кто реально давно пользует и то и другое. Мнения как всегда разошлись.

Добавлено через 1 минуту
M128K145, твой выбор, если что то делаешь на С++, я так понимаю printf?
0
Эксперт JavaЭксперт С++
 Аватар для M128K145
8384 / 3617 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
25.08.2011, 21:18
Цитата Сообщение от AzaKendler Посмотреть сообщение
M128K145, твой выбор, если что то делаешь на С++, я так понимаю printf?
почему же? пишу на С - использую printf, на С++ - cout. Я джавист, а не сишник, поэтому в тех программах, которые я пишу на С/С++ перфоманс консольного вывода не важен, а вообще давно на сях не писал
0
 Аватар для AzaKendler
214 / 116 / 14
Регистрация: 30.05.2011
Сообщений: 1,772
Записей в блоге: 15
25.08.2011, 21:25  [ТС]
M128K145,

Не по теме:

так и думал что к твоему ответу сложно будет прикопаться :D.

ну а я учу С++ поэтому мой выбор cout, ну и для общего развития освою семейство printf(s) и иже с ними.
0
4866 / 3287 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
26.08.2011, 01:47
Цитата Сообщение от alex_x_x Посмотреть сообщение
ну в с++ при компиляции и линковке проверяются
а, ну да
как здесь
это недочёт, скорее всего

Добавлено через 4 минуты
C
1
sprintf(s, "%d%d%d", 1, 2, 3);
на C++ как выглядит ?
0
Higher
 Аватар для diagon
1953 / 1219 / 120
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
26.08.2011, 08:18
Цитата Сообщение от accept Посмотреть сообщение
на C++ как выглядит ?
C++
1
2
3
std::ostringstream ost;
ost << 1 << 2 << 3;
s = ost.str();
0
Эксперт С++
 Аватар для grizlik78
2383 / 1667 / 279
Регистрация: 29.05.2011
Сообщений: 3,402
26.08.2011, 11:45
Я, пожалуй, вспомню ещё одно важное свойство потоков С++. Это их гибкость. Функции вроде scanf/printf крайне неудобно использовать в шаблонных функциях и классах.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
26.08.2011, 11:45
Помогаю со студенческими работами здесь

Cout <<endl; Что это значит? Если ничего нету в cout?
Здравствуйте ! Обьясните пожалуйста что значит cout &lt;&lt;endl; если он используется после цикла for?

Подскажите почему после первого cout программа не останавливается для ввода строки, а выводит второй cout
Подскажите почему после первого cout программа не останавливается для ввода строки, а выводит второй cout. Это фрагмент со структурами: ...

В чем разница std::cout и просто cout?
Ребят ,подскажите на простом языке для чайников . В чем разница std::cout и просто cout?

Разница между fwrite, cout и cout.write
Привет. Пытаюсь вывести букву 'ф' в консоль Windows 7, используя кодировку UTF-8. Для этого меняю кодовую страницу консоли на CP_UTF8,...

Cout like: перегрузить оператор<< по примеру объекта cout для extern объекта пользовательского типа
Мне нужен extern объект по примеру cout с перегруженным оператором. Я нечто подобное сделал, только у меня выдаёт ошибку &quot;undefined...


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

Или воспользуйтесь поиском по форуму:
97
Ответ Создать тему
Новые блоги и статьи
[golang] Двоичная куча, min-heap
alhaos 20.05.2026
Двоичная куча Двоичная куча — структура данных, которая всегда держит самый важный элемент наготове. Представьте очередь к хилеру в игре, и очередь из игроков в приоритете те у кого меньше. . .
[golang] Breadth-First Search
alhaos 19.05.2026
BFS (Breadth-First Search) — это базовый алгоритм обхода графа в ширину, который поуровнево исследует все связанные вершины. Он начинает с выбранной точки и проверяет всех соседей, прежде чем. . .
[golang] Алгоритм «Хак Госпера»
alhaos 17.05.2026
Алгоритм «Хак Госпера» Хак Госпера (Gosper's Hack) — алгоритм нахождения следующего по величине числа с тем же количеством установленных бит. Придуман Биллом Госпером в 1970-х, опубликован в. . .
Рисование бинарного древа до 6-го колена на js, svg.
russiannick 17.05.2026
<svg width="335" height="240" viewBox="0 0 335 240" fill="#e5e1bb"> <style> <!]> </ style> <g id="bush"> </ g> </ svg> function fn(){ let rost;/ / высота древа let xx=165,yy=210,w=256;
FSharp: interface of module
DevAlt 16.05.2026
Интерфейс модуля F# позволяет управлять доступностью членов, содержащихся в реализации модуля. По-умолчанию все члены модуля доступны: module Foo let x = 10 let boo () = printfn "boo" . . .
Хитросплетение родственных связей пантеона греческих богов.
russiannick 14.05.2026
Однооконник, позволяющий узреть и изучить отдельных героев древней Греции. <!DOCTYPE html> <html lang="ru"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible". . .
[golang] Угол между стрелками часов
alhaos 12.05.2026
По заданным значениям часа и минуты необходимо определить значение меньшего угла между стрелками аналогового циферблата часов. import "math" func angleClock(hour int, minutes int) float64 { . . .
Debian 13: Установка Lazarus QT5
ВитГо 09.05.2026
Эта инструкция моя компиляция инструкций volvo https:/ / www. cyberforum. ru/ blogs/ 203668/ 10753. html и его же старой инструкции по установке Lazarus с gtk2. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru