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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Archiolidius
0 / 0 / 0
Регистрация: 13.02.2012
Сообщений: 8
#1

Подскажите, пожалуйста, как правильно объявить динамически расширяемую строку? - C++

13.02.2012, 21:57. Просмотров 745. Ответов 4
Метки нет (Все метки)

Подскажите, пожалуйста, как правильно объявить динамически расширяемую строку?
Когда я объявляю так: char* ch1=new char; и считываю её (gets(ch1)) , то при количестве символов >23 программа вылетает. Выдает вот такое:
Windows has triggered a breakpoint in L.exe.

This may be due to a corruption of the heap, which indicates a bug in L.exe or any of the DLLs it has loaded.

This may also be due to the user pressing F12 while L.exe has focus.

The output window may have more diagnostic information.
Может нужно по другому строку объявлять?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.02.2012, 21:57     Подскажите, пожалуйста, как правильно объявить динамически расширяемую строку?
Посмотрите здесь:

C++ Подскажите пожалуйста, как правильно освободить память
C++ Как объявить массив динамически, заполнив его случайными числами
Подскажите пожалуйста, что я дулаю не правильно? C++
C++ Подскажите пожалуйста как правильно расспечатать
C++ Подскажите пожалуйста, как правильно вывести,сформировать массив из задания
как мне в функции main() объявить функцию Do (), подскажите пожалуйста, на таком глупом застрял C++
Подскажите пожалуйста как разбить строку на массив слов? C++
Как правильно объявить вектор? C++
C++ Как правильно объявить структуру
C++ Пожалуйста подскажите как правильно!
C++ Подскажите пожалуйста как правильно это объяснить, прочитать
C++ Знаю , что подобное задание на форуме есть, но подскажите как правильно оформить мой код, пожалуйста

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
rangerx
1920 / 1529 / 139
Регистрация: 31.05.2009
Сообщений: 2,892
13.02.2012, 22:06     Подскажите, пожалуйста, как правильно объявить динамически расширяемую строку? #2
C++
1
2
3
4
5
#include <string>
#include <iostream>
//...
std::string s;
std::getline(std::cin, s);
Добавлено через 1 минуту
Цитата Сообщение от Archiolidius Посмотреть сообщение
Когда я объявляю так: char* ch1=new char;
Так вы выделяете память под один символ.
Archiolidius
0 / 0 / 0
Регистрация: 13.02.2012
Сообщений: 8
13.02.2012, 22:11  [ТС]     Подскажите, пожалуйста, как правильно объявить динамически расширяемую строку? #3
Цитата Сообщение от rangerx Посмотреть сообщение
C++
1
2
3
4
5
#include <string>
#include <iostream>
//...
std::string s;
std::getline(std::cin, s);
Добавлено через 1 минуту

Так вы выделяете память под один символ.
Спасибо большое! А как теперь преобразовать её в float? Если Char можно было через atof, то как это реализовать в данном случае?
rangerx
1920 / 1529 / 139
Регистрация: 31.05.2009
Сообщений: 2,892
13.02.2012, 22:25     Подскажите, пожалуйста, как правильно объявить динамически расширяемую строку? #4
Если вы используете копмилятор с поддержкой последнего стандарта C++ то
C++
1
double f = std::stof(s);
в противном случае можно использовать тот же atof
C++
1
double f = atof(s.c_str());
Archiolidius
0 / 0 / 0
Регистрация: 13.02.2012
Сообщений: 8
13.02.2012, 22:26  [ТС]     Подскажите, пожалуйста, как правильно объявить динамически расширяемую строку? #5
rangerx, Спасибо
C++
1
double f = stof(s);
прекрасно работает=)
Yandex
Объявления
13.02.2012, 22:26     Подскажите, пожалуйста, как правильно объявить динамически расширяемую строку?
Ответ Создать тему
Опции темы

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