2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 c++ ubuntu
Сообщение12.04.2016, 13:56 
Аватара пользователя


26/03/13
326
Russia
Здравствуйте, пытаюсь вывести символ окончания строки, но вместо этого получаю ромб с вопросом, из-за чего это может быть?

Используется синтаксис C++
#include<iostream>
using namespace std;
int main(){
        int n=10;
        char str[n];
        cin>>str;
        cout<<str<<endl;
        for(int i=0;i<n;i++)
                cout<<str[i];
        return 0;      
}
 


-- 12.04.2016, 13:59 --

ссылка на результат
https://photos.google.com/search/_tra_/photo/AF1QipNq0BNxoFm9tv6vbNpPC84EqZ56d1d77fi4jp35

 Профиль  
                  
 
 Re: c++ ubuntu
Сообщение12.04.2016, 14:07 
Аватара пользователя


11/06/12
10390
стихия.вздох.мюсли
Гугл требует войти в аккаунт. Опубликуйте, пожалуйста, картинку на другом хостинге (напр., postimage.org) и приведите непосредственно здесь с помощью тега [img].

 Профиль  
                  
 
 Re: c++ ubuntu
Сообщение12.04.2016, 14:57 


10/04/12
704
Мусор печатается, если введённая строка короче 10. Ну и память портится, если введённая строка длиннее 10.

 Профиль  
                  
 
 Re: c++ ubuntu
Сообщение12.04.2016, 15:05 


19/03/16

114
Вероятно вы определили строку фиксированной длины.
Код:
int n=10;
char str[n];

Когда недозаполняете ее, то там из памяти берутся случайные значения. А когда переполняете, то есстесственно портится.
Иногда символ окончания строки может состоять из двух символов.
А ваще надо читать документацию минимально, нельзя наскоком программировать.

Берите питон, там за такими мелочами следить не требуется. Либо следите.

 Профиль  
                  
 
 Re: c++ ubuntu
Сообщение12.04.2016, 17:31 
Аватара пользователя


26/03/13
326
Russia
Загрузил

https://postimg.org/image/wn3pl4swx/

Есть следующий вопрос: cin добавляет символ окончания строки?

 Профиль  
                  
 
 Re: c++ ubuntu
Сообщение12.04.2016, 18:16 
Заслуженный участник


27/04/09
28128
Так вы даже проверить можете (хотя совет читать документацию уже был*). Выведите коды символов вместо самих символов, преобразуя их при выводе в intы.

* Она скажет, что cin — это istream<какой-то там>, после чего про istream operator<<(istream, char*) (или что-то похожее) она скажет, что происходит с переданным указателем на начало массива. Хотя по логике, конечно же, '\0' должны добавляться: стандартную библиотеку продумывали тщательно. :D

 Профиль  
                  
 
 Re: c++ ubuntu
Сообщение12.04.2016, 18:18 
Аватара пользователя


11/06/12
10390
стихия.вздох.мюсли
Joe Black в сообщении #1114429 писал(а):
Загрузил
А тегом [img] воспользоваться религия запрещает ;-(
Joe Black в сообщении #1114429 писал(а):
cin добавляет символ окончания строки?
Нет (надеюсь, я правильно понял вопрос).

 Профиль  
                  
 
 Re: c++ ubuntu
Сообщение12.04.2016, 18:23 
Заслуженный участник


27/04/09
28128
Aritaborian в сообщении #1114440 писал(а):
Нет (надеюсь, я правильно понял вопрос).
Я думаю, имелся в виду нуль-символ.

 Профиль  
                  
 
 Re: c++ ubuntu
Сообщение12.04.2016, 22:40 
Аватара пользователя


26/03/13
326
Russia
Aritaborian в сообщении #1114440 писал(а):
Joe Black в сообщении #1114429 писал(а):
Загрузил
А тегом [img] воспользоваться религия запрещает ;-(
Joe Black в сообщении #1114429 писал(а):
cin добавляет символ окончания строки?
Нет (надеюсь, я правильно понял вопрос).
имелось ввиду '\0'

-- 12.04.2016, 22:40 --

Aritaborian в сообщении #1114440 писал(а):
Joe Black в сообщении #1114429 писал(а):
Загрузил
А тегом [img] воспользоваться религия запрещает ;-(
Joe Black в сообщении #1114429 писал(а):
cin добавляет символ окончания строки?
Нет (надеюсь, я правильно понял вопрос).
Пишет, что размер не соответствует

 Профиль  
                  
 
 Re: c++ ubuntu
Сообщение12.04.2016, 22:57 
Заслуженный участник


27/04/09
28128

(Размер)

А, есть такое. Ну так можно было всё по краям поотрезать. :-) Обычно требуется ширина не больше 800 пикселей, хотя в случае с вашей ссылкой почему-то форум действительно не пишет об этом.

Изображение

 Профиль  
                  
 
 Re: c++ ubuntu
Сообщение13.04.2016, 06:36 


27/08/14
206
Joe Black в сообщении #1114507 писал(а):
имелось ввиду '\0'
Добавляет, но в консоле \0 не отображается

 Профиль  
                  
 
 Re: c++ ubuntu
Сообщение13.04.2016, 15:29 
Аватара пользователя


11/06/12
10390
стихия.вздох.мюсли
Joe Black в сообщении #1114429 писал(а):
cin добавляет символ окончания строки?
Joe Black, прошу прощения, я неверно истолковал ваш вопрос и мой ответ «нет» неверен.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 12 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group