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

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


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

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

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

Выпуск № 143
от 05.07.2005, 01:10

Администратор:Калашников О.А.
В номере:Вопросов: 3, Ответов: 10


Вопрос № 22824: здрасьти! 1) немножко туповатый вопрос, но всетаки интересно, а по каким критериям выбирают printf() и scanf вместо fgets() и fputs() (и ноаборот)?? 2) я вот тут одной вещи не понял: значит есть в Unix такая функция bind(), для того...
Вопрос № 22856: бсад Просьба ко всем экспертам!! Обьясните пожалуйсто как работать сДЕБАГОМ ! Я только начал учить С++ !! Простая задача 3+2 все время ДЕБАГ посылает в АSSembler ,КАК ЭТОГО ИЗБЕЖАТЬ??? Какую книгу посоветуйте и где можно ...
Вопрос № 22869: Доброго времени суток, Уважаемые эксперты!!! Нужно построить таблицу, количество столбцов и строк известно, и далее работать с этим документом-таблицей, и хотелось бы чтобы можно было вводить текс длиной большей чем ширина ячейки. Есть л...

Вопрос № 22.824
здрасьти!

1) немножко туповатый вопрос, но всетаки интересно, а по каким критериям выбирают printf() и scanf вместо fgets() и fputs() (и ноаборот)??

2) я вот тут одной вещи не понял: значит есть в Unix такая функция bind(), для того чтобы привязать сокет к определенному порту и IP адресу (хотя в принципе и не важно для чего она). короче для того, чтобы она была протокольно независимой, ей надо передовать указатель на "generic structure" (хехе так в книжке написано), хотя сама структура не "generic", а вполне даже контретная (т.е. протокольно зависимая (например для IPv4)). ну так вот, я понимаю, если там например передаем в функцию указатель и при этом говорим (void *), но когда есть определенная структура, с 4-мя полями, а мы передаем ее указатель и при этом с коррекцией указателя, на другую структуру (хотя и это еще ладно). мне не понятно как можно потом внутри функции обращяться к полям. чета я намутил... (посмотрите примерный код)

Приложение:

Отправлен: 29.06.2005, 08:16
Вопрос задал: ОчХочуНаучиться (статус: Посетитель)
Всего ответов отправлено: 3

Отвечает: Tsechoev Bagaudin
Здравствуйте, ОчХочуНаучиться!
Если объект или структура передается по указателю, насколько я помню к членам этого объекта обращаются не через точку а с помощью стрелки ->
if( sockaddr->family == AF_INET)


---------
Есть только одно зло - невежество, и только одно благо - знания
Ответ отправил: Tsechoev Bagaudin (статус: 6-ой класс)
Отправлен: 29.06.2005, 10:20

Отвечает: Jadd
Здравствуйте, ОчХочуНаучиться!
1) Смотри:
int fputs( const char *string, FILE *stream );
int printf( const char *format [, argument]... );

Разницу чувствуешь? Первая пишет в файловый поток строку, вторая - форматированный вывод строки и/или чего бы то ни было. Как говорится, почувствуй разницу.

2) Чет-ты тут запутал. Или сам не понял что спросил. Почему не должно работать?
---------
Если в сердце дверь закрыта, нужно в печень постучаться
Ответ отправил: Jadd (статус: Студент)
Отправлен: 29.06.2005, 11:11

Отвечает: Алексей Белоусов
Здравствуйте, ОчХочуНаучиться!
Немножко добавлю.
fputs() может записать только строку, а printf() пишет строки, числа и даже указатели.
Например:
S1= "Вася выпил";
S2= "бутылок пива!";
n = 5;
printf("%s %d %s ", S1, n, S2) выведет "Вася выпил 5 бутылок пива!"
Ответ отправил: Алексей Белоусов (статус: 1-ый класс)
Отправлен: 29.06.2005, 13:38


Вопрос № 22.856
бсад
Просьба ко всем экспертам!!
Обьясните пожалуйсто как работать сДЕБАГОМ
!
Я только начал учить С++ !!
Простая задача 3+2 все время ДЕБАГ посылает в АSSembler ,КАК ЭТОГО ИЗБЕЖАТЬ???

Какую книгу посоветуйте и где можно найти её в интернете??

Зарие спасибо

Приложение:

Отправлен: 29.06.2005, 19:19
Вопрос задал: Natan_shimonov (статус: Посетитель)
Всего ответов отправлено: 4

Отвечает: Алексей Белоусов
Здравствуйте, Natan_shimonov!
Если вы хотите увидеть описание функции printf() на C++, то вынужден вас огорчить - вы его не найдёте! Большинство ф-ций windows "зашиты" в системных dll, а в заголовчных файлах есть только ссылки на них.
Так printf() определена в заголовке:
_CRTIMP int __cdecl printf(const char *, ...);
Соответственно в дебаге для них только ассемблер :-(
Ответ отправил: Алексей Белоусов (статус: 1-ый класс)
Отправлен: 29.06.2005, 20:58

Отвечает: Tsechoev Bagaudin
Здравствуйте, Natan_shimonov!
Что значит void main(void) ?
Приучи себя изначально к хорошему стилю написания кода. Тем более если инициализация идет при объявлении через запятую не получается.
#include <iostream>
using namespace std;

int main(){
int i = 5;
int j = 8;
int num;
num = i + j;
cout << num << endl;
return 0;
}
---------
Есть только одно зло - невежество, и только одно благо - знания
Ответ отправил: Tsechoev Bagaudin (статус: 6-ой класс)
Отправлен: 29.06.2005, 23:32

Отвечает: DSota
Здравствуйте, Natan_shimonov!

Если ты используешь VisualC, то там работают клавиши:
F11 - Выполнить следующую инструкцию Си с заходом в подпрограммы
F10 - Выполнить следующую инструкцию Си без захода в подпрограммы
Shift-F11 - Выполнить до выхода из подпрограммы
Shift-F5 - Закончить отладку
Ctrl-F10 - Выполнять до курсора
В БорландСи или TurboC:
F7 - Выполнить следующую инструкцию Си с заходом в подпрограммы
F8 - Выполнить следующую инструкцию Си без захода в подпрограммы
Shift-F8 - Выполнить до выхода из подпрограммы
Ctrl-F2 - Закончить отладку
F4 - Выполнять до курсора

А вообще - рассмотри менюшку DEBUG - в ней написано должно быть...

Книгу - в любой книге по описанию не самого языка си, а средства разработки, например TurboC. Во всех этих книгах есть отдельная подробная глава "Отладка". Например:
http://www.codenet.ru/progr/cpp/qc/8.php#10 - QC
http://www.lib.com.ua/books/7/42n1.html - TurboC

---------
Открыть глаза навстречу солнцу.
Ответ отправил: DSota (статус: Практикант)
Отправлен: 30.06.2005, 09:06
Оценка за ответ: 5

Отвечает: yatagan
Здравствуйте, Natan_shimonov!
когда дебагер залазит в ASM, это значит, что данная функция уже скомпилирована и пребывает в двоичном виде... скорее всего она лежит в какой-то dll. просто пропускай такие дела клавишей F10.
---------
Україна понад усе!
Ответ отправил: yatagan (статус: 2-ой класс)
Отправлен: 30.06.2005, 11:35


Вопрос № 22.869
Доброго времени суток, Уважаемые эксперты!!!

Нужно построить таблицу, количество столбцов и строк известно, и далее работать с этим документом-таблицей, и хотелось бы чтобы можно было вводить текс длиной большей чем ширина ячейки.
Есть ли готовый класс или предется все делать самому.

Спасибо.
Отправлен: 29.06.2005, 22:57
Вопрос задал: Korolyov Alexandr (статус: Посетитель)
Всего ответов отправлено: 3

Отвечает: Tsechoev Bagaudin
Здравствуйте, Korolyov Alexandr!
Поищи на www.torry.net если вдруг не будет, напиши на моем форуме, постараюсь помочь. Думаю это нужно под С++ булдер.
---------
Есть только одно зло - невежество, и только одно благо - знания
Ответ отправил: Tsechoev Bagaudin (статус: 6-ой класс)
Отправлен: 29.06.2005, 23:39

Отвечает: DSota
Здравствуйте, Korolyov Alexandr!

Все "стандартные" обьекты ввода допускают ввод текста длиной большей ширины ячейки. Если ячейка наследована от EDIT класса - то просто добавь свойство ES_AUTOHSCROLL.
---------
Открыть глаза навстречу солнцу.
Ответ отправил: DSota (статус: Практикант)
Отправлен: 30.06.2005, 08:37

Отвечает: Jadd
Здравствуйте, Korolyov Alexandr!
А среда разработки какая? Вот как мне давать совет, если информации 0? Если VC, тогда берешь CListView и делаешь то, что тебе надо. Если BCB, тогда TStringGrid. Все есть, главное посмотреть.
---------
Если в сердце дверь закрыта, нужно в печень постучаться
Ответ отправил: Jadd (статус: Студент)
Отправлен: 30.06.2005, 10:28


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

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

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

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

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


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


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

Яндекс


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

В избранное