2014 dxdy logo

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

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




 
 c++ ubuntu
Сообщение12.04.2016, 13:56 
Аватара пользователя
Здравствуйте, пытаюсь вывести символ окончания строки, но вместо этого получаю ромб с вопросом, из-за чего это может быть?

Используется синтаксис 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 
Аватара пользователя
Гугл требует войти в аккаунт. Опубликуйте, пожалуйста, картинку на другом хостинге (напр., postimage.org) и приведите непосредственно здесь с помощью тега [img].

 
 
 
 Re: c++ ubuntu
Сообщение12.04.2016, 14:57 
Мусор печатается, если введённая строка короче 10. Ну и память портится, если введённая строка длиннее 10.

 
 
 
 Re: c++ ubuntu
Сообщение12.04.2016, 15:05 
Вероятно вы определили строку фиксированной длины.
Код:
int n=10;
char str[n];

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

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

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

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

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

 
 
 
 Re: c++ ubuntu
Сообщение12.04.2016, 18:16 
Так вы даже проверить можете (хотя совет читать документацию уже был*). Выведите коды символов вместо самих символов, преобразуя их при выводе в intы.

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

 
 
 
 Re: c++ ubuntu
Сообщение12.04.2016, 18:18 
Аватара пользователя
Joe Black в сообщении #1114429 писал(а):
Загрузил
А тегом [img] воспользоваться религия запрещает ;-(
Joe Black в сообщении #1114429 писал(а):
cin добавляет символ окончания строки?
Нет (надеюсь, я правильно понял вопрос).

 
 
 
 Re: c++ ubuntu
Сообщение12.04.2016, 18:23 
Aritaborian в сообщении #1114440 писал(а):
Нет (надеюсь, я правильно понял вопрос).
Я думаю, имелся в виду нуль-символ.

 
 
 
 Re: c++ ubuntu
Сообщение12.04.2016, 22:40 
Аватара пользователя
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 

(Размер)

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

Изображение

 
 
 
 Re: c++ ubuntu
Сообщение13.04.2016, 06:36 
Joe Black в сообщении #1114507 писал(а):
имелось ввиду '\0'
Добавляет, но в консоле \0 не отображается

 
 
 
 Re: c++ ubuntu
Сообщение13.04.2016, 15:29 
Аватара пользователя
Joe Black в сообщении #1114429 писал(а):
cin добавляет символ окончания строки?
Joe Black, прошу прощения, я неверно истолковал ваш вопрос и мой ответ «нет» неверен.

 
 
 [ Сообщений: 12 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group