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

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


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


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

Выпуск № 272
от 01.06.2003, 22:50

Администратор:
Имя: Nick.Box
URL: Информационный ресурс
ICQ: 365124
[censored], [censored]
О рассылке:
Задано вопросов: 822
Отправлено ответов: 1880
Активность: 228.7 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе][Обсудить на форуме]


 Список экспертов, ответы которых опубликованы в данном выпуске

BOLT
Статус: Профессиональный
Общий рейтинг: 168.63
URL: В помощь начинающему программитсу Assembler, C/C++
[Подробней >>]
vitya
Статус: Профессиональный
Общий рейтинг: 108.1
[Подробней >>]
Hayk
Статус: Доверительный
Общий рейтинг: 112.23
[Подробней >>]
 
[MozgC]
Статус: Опытный
Общий рейтинг: 171.34
[Подробней >>]
Yuri Gordienko
Статус: Опытный
Общий рейтинг: 115.22
[Подробней >>]
Avl2k
Статус: Опытный
Общий рейтинг: 125.8
[Подробней >>]
 
Ramzes
Статус: Профессиональный
Общий рейтинг: 127.31
URL: Microsoft homepage
[Подробней >>]
Knignick
Статус: Опытный
Общий рейтинг: 112.08
URL: Мой каталог ссылок по программированию
[Подробней >>]
xiron
Статус: Опытный
Общий рейтинг: 113.98
[Подробней >>]
 
DiGiT[old]
Статус: Профессиональный
Общий рейтинг: 111.31
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 813. Уважаемые товарищи эксперты.Я начал заниматься языком с++ совсем недавно и вот у меня к вам возникло... (ответов: 10)
Вопрос № 814. Всем доброго времени суток! Извините, если чуть в оффтопик, но вопрос уж очень беспокоит. Есть ... (ответов: 4)

Вопросов: 2, ответов: 14


 Вопрос № 813

Уважаемые товарищи эксперты.Я начал заниматься языком с++ совсем недавно и вот у меня
к вам возникло несколько вопросов.
Вопрос номер один:
какими способами можно очисть буффер
например char buf[10] у меня получает от меня информацию а потом ее выводит
так если я во второй раз ввожу строку меньше чем в первый раз то выводиться и часть
первой строки.Как можно это исправить?
Вопрос номер два:
как сделать чтоб при запуске вин32 программы не выводилась консоль.
Я пытаюсь написать программу с использованием винсока которая просто висит на порту и пустая
консоль на экране и в панели задачь мне ни к чему.Пожалуйста помогите.
Заранее спасибо.



Вопрос отправлен: 29.05.2003, 15:32
Отправитель: Alexander

[Следующий вопрос >>] [Список вопросов]

Отвечает BOLT

Добрый день, Alexander!
1)Самый верный способ - это обнуление массива с помощью цикла:
for (register int i=1;i<10;i++)
  buf[i]=0;

Есть, конечно, еще ZeroMemory(...).
2):з) ну так пиши GUI Win32 приложение.Если начал недавно заниматься, то писать, используя API, для будет сущим адом.Поверь моему опыту.Используй VCL C++Builder'а или на худой конец MFC Visual C++.
Счастливо!

Ответ отправлен: 29.05.2003, 18:25
Отправитель: BOLT


Отвечает vitya

Доброе время суток, Alexander!

1. например:
memset(buf, 0, 10);
2. создай оконное приложение и спрячь его окно. консольное тоже можно, но его сложнее найти. надо вызвать FindWindow() и потом ShowWindow(hWnd, SW_HIDE);

Ответ отправлен: 29.05.2003, 16:05
Отправитель: vitya


Отвечает Hayk

Здравствуйте, Alexander!
Stroka v C/C++ eto ukazatel' na tip char. Dlinu stroki nigde ne xranyat, stroka okanchivayet'ysa simvolom ''(0x0). Po vsey veroyatnosti ty ne stavish' etot okonchatel'nyi simvol v konce vvoda v buffer buf. Tak otkuda vyvodyashyaya funkciya dogadayet'ysa gde konec tvoyey stroki. Ispol'zuy funkciyu strcpy, strlen standartnoi biblioteki.
A naschet konsoli .... Smotrya v kakoy srede ty rabotayesh'.

Ответ отправлен: 29.05.2003, 16:08
Отправитель: Hayk


Отвечает [MozgC]

Насчет второго вопроса ничего не скажу а вот по первому...
100% дело просто в том, что когда заносится 2 строка, более коротка, она заносится без символа 0 в конце. А строки должны кончаться 0, не ASCII кодом "0" а числом ноль.
Например чтобы обнулить строку buf, можно написать buf[0]=0;
Или же просто использовать функцию strcpy, она при копировании строки, ставит в конце 0, таким образом завершая строку, и все что после 0 выводится не будет (естественно 0 тоже не будет выводиться =)

Ответ отправлен: 29.05.2003, 19:33
Отправитель: [MozgC]


Отвечает Yuri Gordienko

Добрый день, Alexander!
По первому вопросу:
а)обнуляй первый символ: buf[0]=0;
б)используй strcpy(buf,"text");
в)используй sprintf(buf,"%s","text");
По второму вопросу:
создавай не консольное, а обычное графическое приложение, далее главное окно делаешь невидимым и все.
Успехов


Ответ отправлен: 29.05.2003, 15:51
Отправитель: Yuri Gordienko


Отвечает Avl2k

Добрый день, Alexander!
1. Помещайте сразу за последним символом строки 0, например buf[5] = 0;
2. А если Вам не нужна консоль - зачем создавать консольное приложение? Создавайте обычное Win32 приложение и пишите в функции WinMain все, что нужно.
С уважением, Avl2k.

Ответ отправлен: 29.05.2003, 16:10
Отправитель: Avl2k


Отвечает Ramzes

Здравствуйте, Alexander!
1. Добавь в конце строки ''
2. Если у тебя NТ/2000/ХР пиши Service.

Ответ отправлен: 30.05.2003, 13:04
Отправитель: Ramzes


Отвечает Knignick

Здравствуйте, Alexander!
По первому вопросу уже много сказали. Могу добавить только что C/C++ считает сторокой аоследовательность байт заканчивающуюся байтом 0 (''). Поэтому либо дописывай '' сам в конец, либо вначале обнуляй весь буфер (функция memset подойдет).
По второму вопросу: можно также написать сервис. Но это посложней чем сделать невидимое графичиское окно.


Ответ отправлен: 30.05.2003, 13:38
Отправитель: Knignick


Отвечает xiron

Доброе время суток, Alexander!
1) Ну скорее всего в буффере в конце строки нет символа ''
А буффер можно очистить так
char buf[10];
memset( buf, 0, 10 );
2) Создай просто Win32 Application

Ответ отправлен: 30.05.2003, 17:17
Отправитель: xiron


Отвечает DiGiT[old]

Приветствую Вас, Alexander!
1) Какой функцией ввод делаешь ?. наверное 0 надо в конце строки ставить :)
2)Так делай приложение с главной функцией WinMain и там не будет создаваться консоль.

Ответ отправлен: 30.05.2003, 04:22
Отправитель: DiGiT[old]


 Вопрос № 814

Всем доброго времени суток! Извините, если чуть в оффтопик, но вопрос уж очень беспокоит. Есть ли трилогия Кнута в цифровой форме? Если у кого есть, вышлите, пожалуйста. Буду очень благодарен.



Вопрос отправлен: 29.05.2003, 18:12
Отправитель: Gofai (full_access@bk.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает Knignick

Доброе время суток, Gofai!
Я знаю где в Москве на 3-х компактах все три тома купить можно. Так что если надо - пиши.


Ответ отправлен: 30.05.2003, 13:46
Отправитель: Knignick


Отвечает Avl2k

Добрый день, Gofai!
Вот тут было что-то (в Tex'е).
С уважением, Avl2k.

Ответ отправлен: 29.05.2003, 18:56
Отправитель: Avl2k


Отвечает [MozgC]

Я как-то давно искал, где только мог - не нашел.. Так что я думаю наврятли..

Ответ отправлен: 29.05.2003, 19:26
Отправитель: [MozgC]


Отвечает BOLT

Приветствую Вас, Gofai!
нету.

Ответ отправлен: 29.05.2003, 21:11
Отправитель: BOLT



Форма отправки вопроса

Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

(C) 2002-2003 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


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


Получить ответов:


 Выбор рассылки

Программисту
Assembler (40)
C / C++ (31)
Perl (5)
Builder / Delphi (15)
Pascal (29)
Basic / VBA (12)
Java / JavaScript (11)
PHP (7)
MySQL / MSSQL (5)
Пользователю
Windows 95/98/Me (36)
Windows NT/2000/XP (29)
"Железо" (28)
Поиск информации (14)
Администратору
Windows NT/2000/XP (15)
Linux / Unix (9)
Юристу
Гражданское право (5)
Семейное право (2)
Трудовое право (3)
КоАП (3)

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




Задать вопрос | Регистрация эксперта | Поиск в базе | Чат | Форумы | Новости
Проект экспертов RusFAQ.ru | Фотоальбом | Virus.RusFAQ.ru | Администрирование


Яндекс цитирования
© 2001-2003 Россия, Москва. Авторское право: Калашников О.А.

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное