Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> _tprintf и STDOUT 
V
    Опции темы
бУРов
Дата 21.6.2013, 15:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 20.8.2010

Репутация: нет
Всего: нет



Взял из интернета пример консольного приложения.
Там есть операторы _tprintf.
Скомпилировал его в Visual Studio 2008.
Хочу запустить из командной строки.
Если запускаю из консоли вот так:
my_prog.exe
то получаю вывод на экран
если так
my_prog.exe > my_prog.out
создается файл my_prog.out нулевого размера.

А как построить приложение, чтобы вывод шел в STDOUT?

Попробовал
Код

std::cout << "Hello world!" << std::endl;

Тоже не получается вывести в файл.

Это сообщение отредактировал(а) бУРов - 21.6.2013, 16:09
PM MAIL   Вверх
бУРов
Дата 21.6.2013, 16:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 20.8.2010

Репутация: нет
Всего: нет



Сейчас щапустил cmd.exe из-под администратора и
Код

std::cout << "Hello world!" << std::endl;

сработал!
PM MAIL   Вверх
bsa
Дата 21.6.2013, 21:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



 smile как тяжело работать под Windows... Проблемы на ровном месте...
PM   Вверх
бУРов
Дата 24.6.2013, 10:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 20.8.2010

Репутация: нет
Всего: нет



1. Я беру пример кода консольного приложения с msdn.
В этих примерах встречаются вызовы:
Код
_tprintf( TEXT("\n\nHello" ));

могу ли, адаптируя такой код в свою программу заменять такие строки на
Код
printf("\n\nHello");

Я попробовал произвести такую замену и программа скомпилировалась без ошибки.

2. Далее, если я создаю консольное приложение из шаблона студии, то точка входа выглядит так:
Код
int _tmain(int argc, _TCHAR* argv[])

Я хочу изменить ее так:
Код
int main(int argc, char *argv[])

Собственно, тоже компилируется и работает.

Вопрос в том, что я потеряю, произведя такие замены?
А то программа  плохо воспринимается, когда в классических книжках по C пишут так, а в примерах - иначе.
PM MAIL   Вверх
bsa
Дата 24.6.2013, 10:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



_tprintf в зависимости от настроек проекта превращается или в printf, или в _wprintf. Вторая - это функция для работы с юникодовыми строками (wchar_t *). Аналогично и _tmain, и TEXT тоже преобразуются. Если отключишь в настройках проекта юникод и прекомпилированные заголовки, то все примеры из книжек будут работать как есть.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0826 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.