динамические массивы известны позволяя хранить строку или любой тип данных без необходимости объявлять его размер проблема, что я столкнулся с моей C++ заключается в следующем:C++ динамические задачи массива
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
char*sentence=new char;
cout<<"enter a sentence (end with *) : ";
cin.getline(sentence,'*');
cout<<"sentence : "<<sentence<<endl;
system("pause");
return 0;
}
в cin.getline не останавливается на символе '*', поэтому предел будет установлен, когда я нажму кнопку enter. , но если я хочу использовать только ключ возврата он будет читать первые 9 символов строки:
int main()
{
char*sentence=new char;
cout<<"enter a sentence : ";
cin.getline(sentence,'\n');
cout<<"sentence : "<<sentence<<endl;
system("pause");
return 0;
}
, но он будет работать только, если я ограничить количество символов:
int main()
{
char*sentence=new char;
cout<<"enter a sentence : ";
cin.getline(sentence,100,'*');
system("pause");
return 0;
}
но Я хочу, чтобы пользователь вводил предложение без ограничений, как это сделать, не устанавливая количество символов в cin.getline и не объявляя динамический массив.
выделить буфер достаточно большой, чтобы держать вход. Что-то вроде 'char * sentence = new char [1000];' – sgarizvi
использовать 'std :: string'. Все остальное отстой. – Walter