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

как count endl заменить на printf ? - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.67
zterry
0 / 0 / 0
Регистрация: 11.11.2011
Сообщений: 11
17.06.2012, 22:03     как count endl заменить на printf ? #1
Всем добрый вечер , есть одна программа , там встречаются строчки .
Собственно вопрос , как будут выглядеть эти строчки с использованием printf .

C++
1
2
3
4
5
cout << "х" << i << "=" << xn << endl;
        i++;
        cout << "x" << i << "=" << xk << endl;
        i++;
    }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.06.2012, 22:03     как count endl заменить на printf ?
Посмотрите здесь:

C++ endl
C++ Что делает endl
C++ Как заменить функцию printf из "С" в "С++"?
endl C++
Чем ::printf предпочтительнее printf? C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
defer
秘密
 Аватар для defer
555 / 235 / 3
Регистрация: 29.11.2010
Сообщений: 783
17.06.2012, 22:04     как count endl заменить на printf ? #2
i,xn,xk - это что?
alex_x_x
бжни
 Аватар для alex_x_x
2441 / 1646 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
17.06.2012, 22:05     как count endl заменить на printf ? #3
C++
1
2
3
printf("x%d=%d\n", i, xn);
i++;
printf("x%d=%d\n", i, xk)
Somebody
2770 / 1583 / 141
Регистрация: 03.12.2007
Сообщений: 4,139
Завершенные тесты: 1
17.06.2012, 22:18     как count endl заменить на printf ? #4
Вообще так для полной аналогии ещё надо fflush(stdout), но, как правило, и без него хорошо.
alex_x_x
бжни
 Аватар для alex_x_x
2441 / 1646 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
17.06.2012, 22:32     как count endl заменить на printf ? #5
Цитата Сообщение от Somebody Посмотреть сообщение
Вообще так для полной аналогии ещё надо fflush(stdout), но, как правило, и без него хорошо.
это будет аналогией std::cout << std::flush;
Somebody
2770 / 1583 / 141
Регистрация: 03.12.2007
Сообщений: 4,139
Завершенные тесты: 1
17.06.2012, 23:30     как count endl заменить на printf ? #6
Так endl же вызывает flush.
http://www.open-std.org/jtc1/sc22/wg...2012/n3337.pdf
27.7.3.8 Standard basic_ostream manipulators [ostream.manip]
namespace std {
template <class charT, class traits>
basic_ostream<charT,traits>& endl(basic_ostream<charT,traits>& os);
}
1 Effects: Calls os.put(os.widen(’\n’)), then os.flush().
2 Returns: os.
NoMasters
Псевдослучайный
1737 / 1080 / 69
Регистрация: 13.09.2011
Сообщений: 3,093
18.06.2012, 01:19     как count endl заменить на printf ? #7
Ну так и наличие '\n' в выводе сбрасывает буфер, если установлена построчная буферизация, а для stdout так оно и есть.
alex_x_x
бжни
 Аватар для alex_x_x
2441 / 1646 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
18.06.2012, 01:24     как count endl заменить на printf ? #8
Цитата Сообщение от NoMasters Посмотреть сообщение
Ну так и наличие '\n' в выводе сбрасывает буфер, если установлена построчная буферизация, а для stdout так оно и есть.
почему например так

C
1
2
3
4
5
6
7
#include <stdio.h>
#include <signal.h>
 
int main() {
  printf ("hello\n");
  raise(SIGKILL);
}
никакой буфер не сбрасывается

http://codepad.org/53mN8Hin
NoMasters
Псевдослучайный
1737 / 1080 / 69
Регистрация: 13.09.2011
Сообщений: 3,093
18.06.2012, 01:37     как count endl заменить на printf ? #9
А теперь из консоли) У пайпа по умолчанию не построчная буферизация.
alex_x_x
бжни
 Аватар для alex_x_x
2441 / 1646 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
18.06.2012, 01:42     как count endl заменить на printf ? #10
Цитата Сообщение от NoMasters Посмотреть сообщение
А теперь из консоли) У пайпа по умолчанию не построчная буферизация.
дак с чего она построчная у stdout?
в-принципе видно, что при выводе в консоль буферизация вроде как действительно строчная, но это както ос'зависимо, да и приложение не может знать куда оно выводит
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.06.2012, 01:49     как count endl заменить на printf ?
Еще ссылки по теме:

Заменить printf scanf на cout cin C++
Cin и cout заменить на scanf и printf C++
C++ Заменить printf на cout, scanf на cin

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

Или воспользуйтесь поиском по форуму:
NoMasters
Псевдослучайный
1737 / 1080 / 69
Регистрация: 13.09.2011
Сообщений: 3,093
18.06.2012, 01:49     как count endl заменить на printf ? #11
Хорошо, не у каждого подменённого stdout, а у того, что изначально в терминал.
Bash
1
2
3
4
5
alex@mbook /tmp $ ./buf
hello
Убито
alex@mbook /tmp $ ./buf > out && cat out 
Убито
Yandex
Объявления
18.06.2012, 01:49     как count endl заменить на printf ?
Ответ Создать тему
Опции темы

Текущее время: 12:13. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru