Вопрос № 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
Разницу чувствуешь? Первая пишет в файловый поток строку, вторая - форматированный вывод строки и/или чего бы то ни было. Как говорится, почувствуй разницу.
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