Форум программистов, компьютерный форум, киберфорум
Наши страницы

Получение информации с сайта - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Двойное объявление класса http://www.cyberforum.ru/cpp-beginners/thread934328.html
Для чего два раза писать class Animal? class Animal; void setValue (Animal&, int); class Animal { public: Animal(); ~Animal();
C++ Работа со списками Помогите пожалуйста с лабораторной работой: "Файл содержит следующую информацию (построчно): фамилия, имя, отчество. Считать файл в список таким образом, чтобы он оставался отсортирован по фамилиям... http://www.cyberforum.ru/cpp-beginners/thread934320.html
Разделение слов на слоги C++
Мне нужно написать программу для деления слов на слоги по определенным правилам. Пока что столкнулся с проблемой цикла. Для одного слова программа работает, но при попытке зациклить вылетает с...
C++ рекурсивный алгоритм и использование точности "Эпсилон"
Нихао всем) Тут такое дело. Нужно построить рекурсивный алгоритм, который бы возводил число "е" (экспоненту) в степень. Степень должна вводиться к клавиатуры. Но это не самое сложное: нужна еще...
C++ Массив ссылок на функции http://www.cyberforum.ru/cpp-beginners/thread934259.html
Объясните где ошибка: #include <iostream> void minimum (int*,int); void maximum (int*,int); void average (int*,int); int main() { setlocale(LC_CTYPE, "rus"); // русский язык в...
C++ Как напечатать содержимое окна windows forms? Помогите, мне надо, чтобы после нажатия на кнопку печаталось окно Windows Forms. Как это можно сделать? подробнее

Показать сообщение отдельно
Tulosba
:)
Эксперт С++
4397 / 3233 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
06.08.2013, 18:13
noeine, выводить надо столько, сколько считали, а не весь буфер целиком. К тому же, когда выводите
C++
1
cout << DataReceived
то вывод идет до первого нулевого символа '\0', а его вообще может не быть там (скорее всего и нет), и происходит выход за границы. Т.е. выводится реально больше, чем размер буфера (до первого нуля, который случайно окажется где-то в памяти).
Поэтому имеет смысл читать хотя бы на 1 байт меньше, чем размер буфера (чтобы можно было поместить ноль в конце), а после чтения (но перед выводом на экран) сделать так:
C++
1
DataReceived[NumberOfBytesRead] = 0;
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru