不使用向量

时间:2016-03-08 05:53:19

标签: c++ cin dynamic-arrays c-strings

很抱歉,如果你认为这个问题没用。我刚开始上大学的计算机科学课。对于我的一项任务,我们需要获取用户输入并使用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;
}

有没有办法这样做而不会出错?

0 个答案:

没有答案