Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.10.2017, 14:50   #1
НеОбязательно
 
Регистрация: 08.10.2017
Сообщений: 7
По умолчанию [C++] Почему некорректно выводит "name"

Почему некорректно выводит "name"


Код:
#include "stdafx.h"
#include <iostream>

using namespace std;

class Auto {
private:
	int year, month, day;
	char name[10];
public:
	void set(int date_year, int date_month, int date_day, char set_name[10]) {
		year = date_year;
		month = date_month;
		day = date_month;
		name[10] = set_name[10];
}
	void get() {
		for (int i = 0; i < 10; i++) {
			cout << name[i];
		};
		cout << ". Year of this auto is - " << year << " month is - " << month << " day is - " << day << endl;
	}
};
int main(int argc, const char* argv[]) {

	Auto mars;
		mars.set(2005, 4, 27, "mars");
	mars.get();

	cin.get();
    return 0;
}
______________________
Используйте тег [CODE] (кнопка с решеткой # в форме сообщения) при вставке кода на форум.
Изображения
Тип файла: png вывод.png (7.3 Кб, 20 просмотров)

Последний раз редактировалось Alex11223; 08.10.2017 в 15:05.
НеОбязательно вне форума Ответить с цитированием
Старый 08.10.2017, 15:07   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Потому что неправильно изменяете и там мусор.

Зачем такие извращения? Используйте std::string
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 08.10.2017, 16:56   #3
НеОбязательно
 
Регистрация: 08.10.2017
Сообщений: 7
По умолчанию

Спасибо, помогло, но все таки, если вам не составит труда, вы не могли бы расписать как сделать это с типом char. Я совсем не понимаю что делаю не так, к тому же, на сколько я понимаю, string сильно нагружает код при сложное обработке данных по отношению к char.
НеОбязательно вне форума Ответить с цитированием
Старый 08.10.2017, 17:10   #4
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Вы присвоили десятый символ десятому символу. Точнее там даже не десятый (одиннадцатый), а выход за пределы массива.
Используйте strcpy.

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

Цитата:
Сообщение от НеОбязательно Посмотреть сообщение
string сильно нагружает код при сложное обработке данных по отношению к char.
С чего вдруг? Что такое "сложная обработка"?
В string же тоже массив char внутри, вряд ли вы реализуете более эффективно, получится только сложнее и больше ошибок.
А от быстрого, но неработающего кода толку совсем мало

Разве что стоит избегать лишнего копирования (как и со всеми С++ классами) и передавать по ссылке или const ссылке (const string& str) если возможно.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 08.10.2017 в 17:13.
Alex11223 вне форума Ответить с цитированием
Старый 08.10.2017, 19:49   #5
НеОбязательно
 
Регистрация: 08.10.2017
Сообщений: 7
По умолчанию

Спасибо за помощь, буду пробовать по другому. Насчет сложной обработки понятия не имею, читал на каком-то сайте объясняющий string.
НеОбязательно вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Почему не выводит ответ? oleg866 Помощь студентам 1 01.06.2014 01:37
Почему выводит ноль? _Лето_ Общие вопросы C/C++ 4 14.11.2013 09:11
Некорректно выводит ответ merhaba1992 Паскаль, Turbo Pascal, PascalABC.NET 1 12.12.2011 19:08
Почему две программы с инди одновременно работают некорректно? TwiX Работа с сетью в Delphi 1 12.12.2009 15:22
скажите почему работает некорректно pimiento Общие вопросы C/C++ 6 29.05.2008 17:21