Форум программистов, компьютерный форум CyberForum.ru

Вывод массива char без лишних символов - C++

Восстановить пароль Регистрация
 
last13day
0 / 0 / 0
Регистрация: 24.06.2013
Сообщений: 4
14.01.2014, 16:25     Вывод массива char без лишних символов #1
В коде имеется массив, объявленный:
char text[N];
далее в коде следует вывести значение массива на данный момент
cout << text << " = " << n << "!" << endl;
и выводится подобное что показано на картинке
т.е. значения массива в "пустых" ячейках принимают вид "кракозябр", ну а значения в виде чисел выводятся нормально
Каким образом можно вывести массив text, выводя только те ячейки, в которых содержатся числа?
Миниатюры
Вывод массива char без лишних символов  
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
UriahHeep
 Аватар для UriahHeep
222 / 217 / 41
Регистрация: 24.09.2012
Сообщений: 509
Записей в блоге: 2
14.01.2014, 17:48     Вывод массива char без лишних символов #2
Всё дело в том, как вы инициализируете массив char text[N]. При выделении памяти под массив вы получаете некий участок памяти, в которой может находиться мусор. Обнулите все элементы массива перед его использованием.
gromo
 Аватар для gromo
366 / 265 / 24
Регистрация: 04.09.2009
Сообщений: 1,214
14.01.2014, 18:19     Вывод массива char без лишних символов #3
C++
1
char text[N] { '\0', };
Somebody
2770 / 1583 / 141
Регистрация: 03.12.2007
Сообщений: 4,139
Завершенные тесты: 1
14.01.2014, 18:27     Вывод массива char без лишних символов #4
C++
1
char text[N] {};
gromo
 Аватар для gromo
366 / 265 / 24
Регистрация: 04.09.2009
Сообщений: 1,214
14.01.2014, 18:32     Вывод массива char без лишних символов #5
Somebody, а если массив на стеке будет? Он разве будет таким образом инициализирован нулями?
Somebody
2770 / 1583 / 141
Регистрация: 03.12.2007
Сообщений: 4,139
Завершенные тесты: 1
14.01.2014, 20:14     Вывод массива char без лишних символов #6
http://www.open-std.org/jtc1/sc22/wg...2012/n3337.pdf
8.5.4 List-initialization [dcl.init.list]
...
3 List-initialization of an object or reference of type T is defined as follows:
...
— Otherwise, if the initializer list has no elements, the object is value-initialized.
[ Example:
int** pp {}; // initialized to null pointer
—end example ]
...
8.5 Initializers
...
7 To value-initialize an object of type T means:
— if T is a (possibly cv-qualified) class type (Clause 9) with either no default constructor (12.1) or a default constructor that is user-provided or deleted, then the object is default-initialized;
— if T is a (possibly cv-qualified) non-union class type without a user-provided or deleted default constructor, then the object is zero-initialized and, if T has a non-trivial default constructor, default-initialized;
— if T is an array type, then each element is value-initialized;
— otherwise, the object is zero-initialized.
Yandex
Объявления
14.01.2014, 20:14     Вывод массива char без лишних символов
Ответ Создать тему
Опции темы

Текущее время: 17:20. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru