很抱歉,如果你认为这个问题没用。我刚开始上大学的计算机科学课。对于我的一项任务,我们需要获取用户输入并使用cin.get()函数将其放入c-string中。教授说我们需要做一些技巧才能让阵列成长。 (不要制作具有修复大小的静态或动态数组,因为它使用了太多内存)
这是我试验过的代码之一,但如果我的输入太大(显然,我踩到数组的范围之外),则会返回错误消息。
#include <iostream>
#include <cstring>
using namespace std;
int main(int argc, char** argv) {
char *hello;
int max = 2;
hello = new char[max];
cin.get(hello, 3000, '\n');
cout << hello;
if(max < strlen(hello)){
max = strlen(hello);
char *temp = new char[max];
for(int i = 0; i < strlen(hello); i++){
temp[i] = hello[i];
}
delete []hello;
hello = temp;
}
cout << hello;
delete []hello;
}
有没有办法这样做而不会出错?