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

Ввод значения в переменную типа string, память под которую выделена динамически - C++

Восстановить пароль Регистрация
 
DPS
 Аватар для DPS
32 / 32 / 3
Регистрация: 12.11.2011
Сообщений: 107
Завершенные тесты: 1
29.06.2013, 12:51     Ввод значения в переменную типа string, память под которую выделена динамически #1
Ребят, подскажите пожалуйста, как организовать ввод значения в переменную типа string, память под которую выделена динамически?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include<iostream>
#include<string>
using namespace std;
 
 
int main()
{
    setlocale(LC_ALL, "Rus");
 
    string *name_of_a_dog   = new string("");
 
    //КАК ОРГАНИЗОВАТЬ ВВОД ЗНАЧЕНИЯ В ПЕРЕМЕННУЮ ТИПА СТРИНГ, ВЫДЕЛЕННУЮ ДИНАМИЧЕСКИ? 
    //getline(cin, name_of_a_dog); //    так нельзя((
 
    delete name_of_a_dog;
 
    //string name = "Bill"; 
    //getline(cin, name);       //а почему-то со статическим можно
 
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.06.2013, 12:51     Ввод значения в переменную типа string, память под которую выделена динамически
Посмотрите здесь:

C++ Динамически выделить память под верхний треугольник квадратной матрицы
Проверка выделена ли память под указатель C++
C++ Выделить память под переменную
C++ Переменную типа string вывести в printf?
C++ Чтение из файла в переменную типа string
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MarVaL
С++ Beginner
 Аватар для MarVaL
116 / 116 / 16
Регистрация: 28.02.2013
Сообщений: 246
29.06.2013, 12:59     Ввод значения в переменную типа string, память под которую выделена динамически #2
str - Указатель - адрес. Чтобы получить доступ к значению нужно разадресовать(добавить *)
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
#include <string>
 
int main(){
  std::string *str = new std::string("");
  std::getline(std::cin, *str);
  std::cout << *str << std::endl;
  delete str;
  
  std::cin.get();
  return 0;
}
0x10
2425 / 1597 / 232
Регистрация: 24.11.2012
Сообщений: 3,919
29.06.2013, 15:50     Ввод значения в переменную типа string, память под которую выделена динамически #3
Цитата Сообщение от DPS Посмотреть сообщение
string *name_of_a_dog * = new string("");
Зачем вообще так делать?
DPS
 Аватар для DPS
32 / 32 / 3
Регистрация: 12.11.2011
Сообщений: 107
Завершенные тесты: 1
29.06.2013, 17:22  [ТС]     Ввод значения в переменную типа string, память под которую выделена динамически #4
Цитата Сообщение от 0x10 Посмотреть сообщение
Зачем вообще так делать?
Это у меня так в конструкторе класса строка инициализируется. Здесь я просто это вынес, чтоб не было лишнего кода. Вроде в книжках пишут что по возможности инициализацию необходимо производить...)
0x10
2425 / 1597 / 232
Регистрация: 24.11.2012
Сообщений: 3,919
29.06.2013, 17:32     Ввод значения в переменную типа string, память под которую выделена динамически #5
Под std::string не нужно выделять память с пом. new, это нонсенс, лишние затраты на выделение памяти.
DPS
 Аватар для DPS
32 / 32 / 3
Регистрация: 12.11.2011
Сообщений: 107
Завершенные тесты: 1
29.06.2013, 17:37  [ТС]     Ввод значения в переменную типа string, память под которую выделена динамически #6
Ничего себе) Спасибо, впредь буду знать.
Yandex
Объявления
29.06.2013, 17:37     Ввод значения в переменную типа string, память под которую выделена динамически
Ответ Создать тему
Опции темы

Текущее время: 23:13. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru