Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на C / C++


Информационный Канал Subscribe.Ru

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / C/C++

Выпуск № 229
от 30.10.2005, 13:57

Администратор:Калашников О.А.
В рассылке:Подписчиков: 226, Экспертов: 30
В номере:Вопросов: 3, Ответов: 13


Вопрос № 28226: Уважаемые Эксперты! Подскажите какими средствами из приложения можно послать ping и проконтролировать соединение ? ...
Вопрос № 28256: Уважаемые эксепрты! Дайте пожалуйста ответ на глупый вопрос. Решил познакомиться с C++ и поставил Visual C++ 6. При запуске простейшего консольного приложения вместо кирилицы отбражается какая-то билиберда. Что надо сделать, чтобы русские символы рис...
Вопрос № 28273: Здравствуйте! Подскажите есть ли в С++ какие-нибудь функции перехода на новую строку, перевода каретки?...

Вопрос № 28.226
Уважаемые Эксперты! Подскажите какими средствами из приложения можно послать ping и проконтролировать соединение ?
Отправлен: 24.10.2005, 14:54
Вопрос задала: Karakurt (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Bob Johnson
Здравствуйте, Karakurt!
В нете лежит немало исходников, пингующих требуемый хост. Ну а самым простым вариантом является запуск обычного ping.exe и фильтрация его результатов )
Ответ отправил: Bob Johnson (статус: Академик)
Отправлен: 24.10.2005, 21:20

Отвечает: estiGi
Здравствуйте, Karakurt!
Нужно создать pipe, потом CreateProcess и далее через ReadFile читать данные, которые выдает обычно консоль.
Так слонжо описать, это не две строчки кода. Если хочешь, стукнись ко мне, я
когда то писал функцию, которая запускает консольное приложение и перехватывает вывод. Именно так я и перехватывал ping в ГУИшной программе.
Ответ отправил: estiGi (статус: 3-ий класс)
Отправлен: 25.10.2005, 23:56


Вопрос № 28.256
Уважаемые эксепрты! Дайте пожалуйста ответ на глупый вопрос. Решил познакомиться с C++ и поставил Visual C++ 6. При запуске простейшего консольного приложения вместо кирилицы отбражается какая-то билиберда. Что надо сделать, чтобы русские символы рисовались правильно? В самой IDE все нормально. А также подскажите, где в этой среде найти командную строку запуска компилятора. К сожалению книги по Visual C++ пока не смог найти. Ваще проблема:(

Приложение:

Отправлен: 24.10.2005, 23:01
Вопрос задал: Domian (статус: Посетитель)
Всего ответов: 5
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: azat
Здравствуйте, Domian!

http://sources.ru/cpp/tips/ruschar_in_console.shtml
Ответ отправил: azat (статус: 4-ый класс)
Отправлен: 24.10.2005, 23:28

Отвечает: igor87
Здравствуйте, Domian!
Все потому что в Visual C++ кодировка ср1251, а в консоли 866-я. Самое простое взять редактор с 866 кодировкой и переписать в нем все, что на русском, а потом скомпилировать в Visual.
Ответ отправил: igor87 (статус: 4-ый класс)
Отправлен: 25.10.2005, 10:35

Отвечает: Sager
Здравствуйте, Domian!
Используй функцию CharToOEM

Приложение:

Ответ отправил: Sager (статус: 10-ый класс)
Отправлен: 25.10.2005, 18:34

Отвечает: Bob Johnson
Здравствуйте, Domian!
вариантов несколько:
1. Выводить в консоль в юникоде (WriteConsoleW или WriteFileW, например).
2. Перекодировать символы перед выводом в кодировку 866 (CharToOem).
3. Писать только на английском.
Функция SetConsoleOutputCP у меня почему-то не работает, так что ее использовать смысла нет.
VC++ использует компилятор cl.exe. Простейший его запуск:
cl.exe 1.cpp
Ответ отправил: Bob Johnson (статус: Академик)
Отправлен: 25.10.2005, 22:32

Отвечает: estiGi
Здравствуйте, Domian!
Насчет консоли посмотри здесь, проблема описывается достаточно подробно:
http://www.rsdn.ru/article/qna/ui/concp.xml
Насчет второго непонятно. Ты имеешь в виду как передать агрументы в приложение в дебаге? В свойствах проекта - Debugging -> Command Arguments.
Если просто запустить компилятор через консоль - находишь cl.exe и запускаешь...
Параметры можно найти в МСДН
Ответ отправил: estiGi (статус: 3-ий класс)
Отправлен: 26.10.2005, 00:03


Вопрос № 28.273
Здравствуйте! Подскажите есть ли в С++ какие-нибудь функции перехода на новую строку,
перевода каретки?
Отправлен: 25.10.2005, 12:47
Вопрос задал: Rewer8 (статус: Посетитель)
Всего ответов: 6
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Rusland
Здравствуйте, Rewer8!
Функций не знаю, но можно просто прибавить к строке два символа " ".

Приложение:

---------
Пресловутое недостающее звено между обезьяной и цивилизованным человеком - это как раз мы. (Конрад Лоренц)

Ответ отправил: Rusland (статус: Практикант)
Отправлен: 25.10.2005, 12:52
Оценка за ответ: 5
Комментарий оценки:
Спасибо

Отвечает: igor87
Здравствуйте, Rewer8!
Тебе нужны не функции, а ESC-последовательности:
- переход на новую строку
- возврат каретки
и т.д.
Использовать их нужно примерно таким образом:
cout << " "; или printf(" ");
Ответ отправил: igor87 (статус: 4-ый класс)
Отправлен: 25.10.2005, 13:00

Отвечает: Jadd
Здравствуйте, Rewer8!
дык есть, но не функции, а спец байты. Например в байт 0D - возврат каретки, а 0A - перевод строки. Для удобства используются символьные представления типа и соответственно. Т.е. когда выводишь строку куда-то (в файл или на экран), то просто добавляешь эти символы. Например, следующий код даст такой вот вывод:

printf("Some string");
printf("Some string");

Вывод:
some stringSome string

А этот код:

printf("Some string ");
printf("Some string");

Вот такой:

Some string
Some string

В справочнике по языку все это есть.
---------
Если в сердце дверь закрыта, нужно в печень постучаться
Ответ отправил: Jadd (статус: Практикант)
Отправлен: 25.10.2005, 13:03

Отвечает: Ерёмин Андрей
Здравствуйте, Rewer8!
В строках можно использовать такие последовательности: - возврат каретки, - новая строка. Комбинация даст новую строку.
---------
Бог создал мир за семь дней и до сих пор система работает, не требуя перезагрузки, потому что у него не было необходимости поддерживать совместимость с предыдущими версиями...
Ответ отправил: Ерёмин Андрей (статус: Специалист)
Отправлен: 25.10.2005, 16:39

Отвечает: Sager
Здравствуйте, Rewer8!
Можно ставить символы , либо числами 1013
Ответ отправил: Sager (статус: 10-ый класс)
Отправлен: 25.10.2005, 18:34

Отвечает: estiGi
Здравствуйте, Rewer8!
хы, даже не знаю, как сказать... Существует два символа - , которые, когда идут вместе, то переводят строку. Напрмиер:
MessageBox ("Top line Bottom line");
используется при бинарном чтении текста. Можно просто - текстовый режим.
А функцию. чесно говоря знаю всего одну - endl из стандартной библиотеки. Но она используется только в консоли, да и то не рекомендуют ее юзать:
cout << "Top line" << endl << "Middle line" << " " << "Bottom line" << endl;
но вот так предпочтительней:
printf ("Top line Middle line Bottom line ");
Ответ отправил: estiGi (статус: 3-ий класс)
Отправлен: 25.10.2005, 23:50
Оценка за ответ: 4
Комментарий оценки:
Когда я пишу код:
AnsiString str="текст ";
str=str+" "+"текст2"
StringGrid1->Cells[0][0]=str;
То в результате его выполнения
получается какая то фигня типа "текст||текст2"
а мне нужно чтобы текст2 был записан под текст,
то есть
"текст"
"текст2"


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2005, RusFAQ.ru, Россия, Москва. Все права защищены.
Идея, дизайн, программирование, авторское право: Калашников О.А.

Rambler's Top100 Яндекс


Subscribe.Ru
Поддержка подписчиков
Другие рассылки этой тематики
Другие рассылки этого автора
Подписан адрес:
Код этой рассылки: comp.soft.prog.cplus
Архив рассылки
Отписаться
Вспомнить пароль

В избранное