Уважаемые товарищи эксперты.Я начал заниматься языком с++ совсем недавно и вот у меня к вам возникло несколько вопросов. Вопрос номер один: какими способами можно очисть буффер например char buf[10] у меня получает от меня информацию а потом ее выводит так если я во второй раз ввожу строку меньше чем в первый раз то выводиться и часть первой строки.Как можно это исправить? Вопрос номер два: как сделать чтоб при запуске вин32 программы не выводилась консоль. Я пытаюсь написать программу с использованием винсока которая просто висит на порту и пустая консоль на экране и в панели задачь мне ни к чему.Пожалуйста помогите. Заранее спасибо.
Добрый день, 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
Всем доброго времени суток! Извините, если чуть в оффтопик, но вопрос уж очень беспокоит. Есть ли трилогия Кнута в цифровой форме? Если у кого есть, вышлите, пожалуйста. Буду очень благодарен.
Доброе время суток, 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.