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

В чем ошибка? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Задача по С++ для первого курса http://www.cyberforum.ru/cpp-beginners/thread702543.html
Здравствуйте. Задали написать программу для решения этой формулы: Составил вот такой код: #include <cstdio> #include <cmath> #include <conio.h> int main() { double x,p1,p2,p3,p4,p5,p6,f;
C++ pascal Даны стороны двух треугольников. найти сумму их периметров и сумму их площадей,определить процедуру для расчёта периметра и площади треугольника по его сторонам. помогите решить. пожалуйста . http://www.cyberforum.ru/cpp-beginners/thread702540.html
Работа с массивом указателей в классе C++
Здравствуйте! Суть задания написать телефонную книгу. Существуют два класса. Первый хранит данные контакта, а через второй идет работа с самой телефонной книгой. В классе PhoneBook я создал массив указателей на контакты. Но суть в том, что, например, после записи контактов stud.Add(); адреса из массива (pst, pst и т.д.) уничтожаются, и stud.Prt() не работает. Как сделать чтобы эти адреса не...
C++ дана строка состоящая из групп нулей и единиц.Посчитать количество символов в самой длинной группе
Помогите написать: дана строка состоящая из групп нулей и единиц.Посчитать количество символов в самой длинной группе.Спасибо
C++ Вычислить m значений функции а(x) http://www.cyberforum.ru/cpp-beginners/thread702537.html
Вычислить m значений заданной функции f(x) на интервале . Результаты оформить в виде таблицы. Столбцы таблицы: 1 – значение xi; 2 – значение функции f1(xi), вычисленное с использованием библиотечных функций компилятора; 3 – значение функции f2(xi), вычисленное с помощью явного разложения в ряд (итерационный процесс до достижения машинного нуля); 4 – М-zero – значение машинного нуля относительно...
C++ Подсчитать сумму элементов в каждом столбце массива и вывести Массив задала, заполнила, вывела, нужно теперь подсчитать сумму элементов в каждом столбце и вывести, как это осуществить? подробнее

Показать сообщение отдельно
IGPIGP
Комп_Оратор)
 Аватар для IGPIGP
6172 / 2901 / 284
Регистрация: 04.12.2011
Сообщений: 7,722
Записей в блоге: 3
19.11.2012, 23:13     В чем ошибка?
Вот вариант как установить с-строку и целое число, попробуйте сделать так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# include < iostream >
# include < string.h >
using namespace std;
class Student{
int age;
char*Name;
public:
Student(char* _N, int _age ){
Name=new char[strlen(_N)+1];
strcpy(Name,_N);
age=_age;
}
void SetName(char* _N ){
if(strlen(_N)>=strlen(_N)){
    delete []Name;
    Name=new char[strlen(_N)+1];
}
strcpy(Name,_N);
}
void SetAge(int _age ){
age=_age;
}
void show(){ cout<<"\nName "<<Name<<"age "<<age;}
char* Get_Name(){ return Name;}
int Get_Age(){ return age;}
};
int main() {
    setlocale(0, "rus");
Student a=Student ("Vovan", 256);
cout<<"Имя "<<a.Get_Name();
std::cout << std::endl;
cout<<"Месяцев отроду  "<<a.Get_Age();
std::cout << std::endl;
const int sz=20;
char buf[sz];
char* text;
cout<<"Введите для "<<a.Get_Name()<<" новое имя по английски - длиной до "<<sz<<" символов ";
std::cout << std::endl;
text=gets(buf);
a.SetName(text);
cout<<"Введите для "<<a.Get_Name()<<" новый возраст ";
std::cout << std::endl;
int newAge;
cin>>newAge;
a.SetAge(newAge );
std::cout << std::endl;
cout<<"Имя "<<a.Get_Name();
std::cout << std::endl;
cout<<"Месяцев отроду  "<<a.Get_Age();
std::cout << std::endl;
std::system("pause");
return 0;    
}
Обратите внимание на перевыделение памяти в SetName();
там можно и каждый раз перевыделять, то есть не только когда не умещается.
Вообще такие функции get которые устанавливают сразу всё, редко бывают нужны. Другое дело конструктор (как вариант).
 
Текущее время: 04:09. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru