Форум программистов, компьютерный форум, киберфорум
Священные войны
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 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. Показов 12480. Ответов 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
Эксперт С++
 Аватар для grizlik78
2383 / 1667 / 279
Регистрация: 29.05.2011
Сообщений: 3,402
24.08.2011, 20:04
Студворк — интернет-сервис помощи студентам
iama, а если эта задача с помощью ifstream/ofstream пролезла, это как?

Добавлено через 1 минуту
Максимальное время выполнения: 1.372 секунды из 5 секунд, 27.4%
От рекордных далеко, конечно, но до лимита ещё дальше
0
 Аватар для iama
1360 / 988 / 119
Регистрация: 30.07.2010
Сообщений: 5,297
24.08.2011, 20:04
grizlik78, покажите код самому ж интересно, я говорю из того, что я знаю
0
Эксперт С++
 Аватар для grizlik78
2383 / 1667 / 279
Регистрация: 29.05.2011
Сообщений: 3,402
24.08.2011, 20:08
Ну я, конечно, слегка недоговаривал
Когда считывал дороги как int, последний тест тоже заваливался.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <fstream>
 
int main()
{
    int num = 0, road, N;
    std::ifstream in("input.txt");
    std::ofstream out("output.txt");
    in >> N;
    for (int i = 0; i < N; ++i)
        for (int j = 0; j < N; ++j)
        {
            in >> road;
            if (j > i)
                num += road;
        }
    out << num << std::endl;
    return 0;
}
0
 Аватар для iama
1360 / 988 / 119
Регистрация: 30.07.2010
Сообщений: 5,297
24.08.2011, 20:15
grizlik78, этот код валится на двух последних на g++, и на трех с VC++ 9.0.
Аж интересно, что оно так
0
Эксперт С++
 Аватар для grizlik78
2383 / 1667 / 279
Регистрация: 29.05.2011
Сообщений: 3,402
24.08.2011, 20:20
Э... В каком смысле валится? Тайм лимит? Ошибка компиляции? Неправильный результат?
У меня на e-olimp вот пролез с Gnu C++

Добавлено через 2 минуты
Ой ты блин. Я ж как-раз медленный вариант показал
0
 Аватар для iama
1360 / 988 / 119
Регистрация: 30.07.2010
Сообщений: 5,297
24.08.2011, 20:21
grizlik78, ТЛ - http://www.e-olimp.com/solutions/388640
Может у меня решение на медленный сервер попало? Там у них бывают иногда такие проблемы, очень редко
0
Эксперт С++
 Аватар для grizlik78
2383 / 1667 / 279
Регистрация: 29.05.2011
Сообщений: 3,402
24.08.2011, 20:22
Да не, я ошибся, не оттуда скопировал

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <fstream>
 
int main()
{
 int num = 0, N;
 std::ifstream in("input.txt");
 std::ofstream out("output.txt");
 in >> N;
 for (int i = 0; i < N; ++i)
     for (int j = 0; j < N; ++j)
     {
         char road;
         in >> road;
         if (j > i)
             num += road - '0';
     }
 out << num << std::endl;
 return 0;
}
0
 Аватар для iama
1360 / 988 / 119
Регистрация: 30.07.2010
Сообщений: 5,297
24.08.2011, 20:27
grizlik78, ааа, красиво.
Но ведь факт-то от этого не меняется, решение, написаное в стиле си работает быстрее, чем его плюсовые аналоги (кто бы сомневался )
0
бжни
 Аватар для alex_x_x
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
24.08.2011, 21:53
iama, и?
чтото сдается мне олимпиадные задачи не показатель
0
 Аватар для iama
1360 / 988 / 119
Регистрация: 30.07.2010
Сообщений: 5,297
24.08.2011, 22:09
alex_x_x, почему вам так кажется? Тестирующий сервер неправильно показывает скорость выполнения программ на одинаковых наборах входных данных?
0
4866 / 3287 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
25.08.2011, 02:44
Цитата Сообщение от alex_x_x
свободное приведение типов и произвольные параметры при вызовах функций
только в си возможно, что программа падает оттого что ее вызывают с другим числом параметров
там не было этих проверок, чтобы экономить время
когда они понадобились, их добавили
по-моему, всё логично
0
бжни
 Аватар для alex_x_x
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
25.08.2011, 10:13
Цитата Сообщение от accept Посмотреть сообщение
по-моему, всё логично
по-моему проверки времени компиляции и линковки никак не сказываются на рантайме
0
 Аватар для AzaKendler
214 / 116 / 14
Регистрация: 30.05.2011
Сообщений: 1,772
Записей в блоге: 15
25.08.2011, 10:21  [ТС]
позвольтес вмешаться

Цитата Сообщение от grizlik78 Посмотреть сообщение
char road;
* * * * *in >> road;
* * * * *if (j > i)
поясни плиз почему такой прирост дает использование чара? из за его размера?

Добавлено через 4 минуты
Цитата Сообщение от iama Посмотреть сообщение
Вот это решение проходит на полный балл:
Код C

#include <stdio.h>
int main()
*{
* * int n, i, j, c = 0, a;
scanf("%d", &n);
for (i = 0; i < n; i++)
* * * * for (j = 0; j < n; j++)
* * * * {
* * * * * * scanf("%d", &a);
* * * * * * if (i != j)
* * * * * * * * c += a;
* * * * }
printf("%d\n", c / 2);
return 0;
*}
так в чем суть разницы в скорости? где узкое место. почему printf scanf оказались быстрее?
0
 Аватар для iama
1360 / 988 / 119
Регистрация: 30.07.2010
Сообщений: 5,297
25.08.2011, 10:36
AzaKendler,
  1. Потоки в стиле Си всегда быстрее потоков в стиле Си++
  2. Что легче читать - 32-битный инт, который из символов нужно привести к числу в двоичной записи, или просто сам символ, не выполняя над ним никаких преобразований, а программист сам получает ответ - ноль это или единица, вычитая из полученого символа - '0'?
0
бжни
 Аватар для alex_x_x
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
25.08.2011, 10:37
потоки устроены сложнее за счет строгой проверки типов рантайма, но вообще все зависит от конкретной реализации
0
 Аватар для iama
1360 / 988 / 119
Регистрация: 30.07.2010
Сообщений: 5,297
25.08.2011, 10:42
alex_x_x, представить себе не могу программиста, который реализует cout более качественно, чем printf. Это ж надо так
хитро
через жопу
printf реализовать...
0
бжни
 Аватар для alex_x_x
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
25.08.2011, 10:48
iama, в чем качество, что от вызова printf у тебя программа от краша стека упадет?
0
 Аватар для iama
1360 / 988 / 119
Регистрация: 30.07.2010
Сообщений: 5,297
25.08.2011, 10:54
alex_x_x, на то printf_s есть, да и вообще, каждый программист до использования каждой функции должен полностью изучить ее действие... Баги можно найти везде.
0
25.08.2011, 11:01

Не по теме:

Цитата Сообщение от iama Посмотреть сообщение
на то printf_s есть
фуууууууу

0
4866 / 3287 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
25.08.2011, 11:01
Цитата Сообщение от alex_x_x
по-моему проверки времени компиляции и линковки никак не сказываются на рантайме
аргументы в вызове не проверяются во время работы программы ?

Цитата Сообщение от alex_x_x
в чем качество
https://www.cyberforum.ru/post1930375.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.08.2011, 11:01

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...


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

Или воспользуйтесь поиском по форуму:
80
Ответ Создать тему
Новые блоги и статьи
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
Лето уходит
kumehtar 17.08.2026
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
Перемещение строк из ТЧ в другой документ с учетом текущего пробега
Maks 17.08.2026
Реализация из решения ниже выполнена на примере нетипового документа "Автозапчасти", с ТЧ "Шины". За основу взят алгоритм отсюда: https:/ / www. cyberforum. ru/ blogs/ 359708/ 10838. html Задача: . . .
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru