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

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

Восстановить пароль Регистрация
 
Archiolidius
0 / 0 / 0
Регистрация: 13.02.2012
Сообщений: 8
13.02.2012, 21:57     Подскажите, пожалуйста, как правильно объявить динамически расширяемую строку? #1
Подскажите, пожалуйста, как правильно объявить динамически расширяемую строку?
Когда я объявляю так: 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++ Подскажите пожалуйста как правильно расспечатать
Как правильно объявить fopen C++
C++ Подскажите пожалуйста, как правильно вывести,сформировать массив из задания
как мне в функции main() объявить функцию Do (), подскажите пожалуйста, на таком глупом застрял C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
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
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
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     Подскажите, пожалуйста, как правильно объявить динамически расширяемую строку?
Ответ Создать тему
Опции темы

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