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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.77
ElvenDragon
3 / 8 / 1
Регистрация: 12.07.2009
Сообщений: 361
#1

Непонятные символы при выводе - C++

09.07.2011, 09:45. Просмотров 1736. Ответов 3
Метки нет (Все метки)

Я уже такую фигню много раз наблюдал типа если не поставить '\0' или убрать при выводе какие то непонятные символы идут от пример.

C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
using namespace std;
 
 
 
int main() {
  char t[2] = {'l','z'};
  cout << t;
  return 0;
}
Вопрос откуда и зачем они появляются?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.07.2011, 09:45     Непонятные символы при выводе
Посмотрите здесь:

Лишние символы при выводе строк C++
При выводе массива выводятся лишние непонятные символы C++
C++ отображаются лишнии символы при выводе массива символов
C++ Непонятные символы при записи в файл
C++ Русские символы при выводе массива структуры
Непонятные символы при запуске программы на dev c++ C++
C++ Добавляются лишние символы при выводе данных в поток
C++ При работе с программой выдает не результат, а какие то непонятные символы
Почему при попытки считывания выдаёт какие-то непонятные символы, а не те, которые требовались? C++
Непонятные цифры при выводе C++
Непонятные символы при выводе русских символов в консоли C++
При выводе динамической матрицы выводятся непонятные цифры C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nameless
Эксперт C++
314 / 296 / 14
Регистрация: 16.06.2009
Сообщений: 486
09.07.2011, 09:52     Непонятные символы при выводе #2
ElvenDragon,

Цитата Сообщение от ElvenDragon Посмотреть сообщение
Вопрос откуда и зачем они появляются?
Вы пытаетесь вывести t как строку, хотя t у вас - массив символов, тогда уж так :

C++
1
char t[] = {'l','z','\0'};
ElvenDragon
3 / 8 / 1
Регистрация: 12.07.2009
Сообщений: 361
09.07.2011, 10:11  [ТС]     Непонятные символы при выводе #3
Цитата Сообщение от nameless Посмотреть сообщение
ElvenDragon,



Вы пытаетесь вывести t как строку, хотя t у вас - массив символов, тогда уж так :

C++
1
char t[] = {'l','z','\0'};
Я знаю такой приём мне просто интересно, а почему массив не может быть без завершающего нуля?
Моя версия хотя я сам не знаю. Или он как то связан с сегментом данных где есть другие символы ,а завершающий ноль блокирует их.
nameless
Эксперт C++
314 / 296 / 14
Регистрация: 16.06.2009
Сообщений: 486
09.07.2011, 10:21     Непонятные символы при выводе #4
Цитата Сообщение от ElvenDragon Посмотреть сообщение
Я знаю такой приём мне просто интересно, а почему массив не может быть без завершающего нуля?
Моя версия хотя я сам не знаю. Или он как то связан с сегментом данных где есть другие символы ,а завершающий ноль блокирует их.
Ну в принципе так и есть если пытаться вывести массив символов (без '\0') как строку, то возможно появление различного мусора, который мог остаться после использования памяти, чтобы этого не произошло мы помечаем конец строки '\0' и все хорошо..
Yandex
Объявления
09.07.2011, 10:21     Непонятные символы при выводе
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru