powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Помогите плиз
11 сообщений из 11, страница 1 из 1
Помогите плиз
    #33181523
#include <iostream.h>
#include <stdio.h>

void main ()
{
cout <<"COUT\n";
printf ("PRINTF\n");
}
При компиляции этой небольшой программки в VC++6 выводиться:

PRINTF
COUT

хотя надо:

COUT
PRINTF

точно также, если скомпилировать:
cout << "Press Any Key";
getch ();

сначала предложиться ввести какой-нибудь символ, а потом выведется "Press Any Key"
В чем проблема?
...
Рейтинг: 0 / 0
Помогите плиз
    #33181586
У себя запустил, все работает как надо, что и не удивительно.
...
Рейтинг: 0 / 0
Помогите плиз
    #33181590
Может быть, этот cout надо как-то "сбрасывать"?
типа:
cout<<"COUT"<<endl;
хотя это вроде то-же самое.
у меня все работает и на vs6 и на vs7
...
Рейтинг: 0 / 0
Помогите плиз
    #33181638
Зрение
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Где-то на форуме www.progz.ru/forum это было...
...
Рейтинг: 0 / 0
Помогите плиз
    #33181788
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
flush вызывай посредине.
Вот именно endl и делает flush. \n - нет.
Но вообще-то лучше не сочетать потоковый ввод -вывод и с-шный ввод-вывод.
Если уж нужен форматный вывод, отформатируй в строку, sprintf, а потом выведи ее в поток.
...
Рейтинг: 0 / 0
Помогите плиз
    #33181890
ЗрениеГде-то на форуме www.progz.ru/forum это было...

не подскажете где именно?

MasterZivflush вызывай посредине.
Вот именно endl и делает flush. \n - нет.
Но вообще-то лучше не сочетать потоковый ввод -вывод и с-шный ввод-вывод.
Если уж нужен форматный вывод, отформатируй в строку, sprintf, а потом выведи ее в поток.

да, поставил сout << "COUT\n" << flush - все работает.
Только почему до этого не работало?
...
Рейтинг: 0 / 0
Помогите плиз
    #33183648
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
программист Васяда, поставил сout << "COUT\n" << flush - все работает.
Только почему до этого не работало?
А почему оно должно работать?
Мешая два разных принципа, ты сам напрашиваешься на странное поведение.
С++ библиотеки в большинстве мест это просто надстройка над C. В твоей конкретной библиотеке стандартных С++ вызовов cout может быть реализован как буферезированый вызов sprintf() который ждет конкретной команды flush для слива всего буферизированого в stdout. А printf() работает с stdout напрямую. Стандарты языков никак не регламентируют отношения между printf() и cout.
В общем, хотел извращений - получил их :)
...
Рейтинг: 0 / 0
Помогите плиз
    #33184477
Фотография NewYear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я видел где-то то-ли функцию, то ли опцию для синхронизации потоков ввода-вывода и С-шных функций. вроде бы даже в книжке Страуструпа написано.
...
Рейтинг: 0 / 0
Помогите плиз
    #33184507
yaro83
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
программист Вася[quot Зрение]Где-то на форуме www.progz.ru/forum это было...

не подскажете где именно?

http://progz.ru/forum/viewtopic.php?t=13391&highlight=printf
...
Рейтинг: 0 / 0
Помогите плиз
    #33184522
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Вася

А какой смысл - смешивать два различных способа
работы со стандартным выводом?
...
Рейтинг: 0 / 0
Помогите плиз
    #33185076
NewYearя видел где-то то-ли функцию, то ли опцию для синхронизации потоков ввода-вывода и С-шных функций. вроде бы даже в книжке Страуструпа написано.

cout.sync_with_stdio ();
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Помогите плиз
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]