使用“NEW”获取字符输入和给定输出并从用户获取字符串长度

时间:2013-05-28 14:58:43

标签: c++ oop new-operator

首先,我这样做没有得到用户的长度。这是:

#include <iostream>
using namespace std;
int main()
{
        char *str;
    cout<<"Enter Characters:";
    str=new char[];
    cin>>str;

    cout<<"\nstr="<<str;
    system ("pause");
    return 0;
}

现在我尝试从用户那里获取输入长度。这是:

#include <iostream>

using namespace std;
int main()
{
        char *str;
    int len;

    cout<<"Enter Characters:";
    str=new char[];
    cin>>str;

    cout<<"Enter length of your entered character:";
    cin>>len;

    char *ptr=str;
    ptr=new char[len];

    cout<<"\nptr="<<ptr;
    system ("pause");
    return 0;
}

这显示了输出中的一些奇怪的东西而“cout(ing)”“ptr”,我不知道是什么! 如果这是错误的,我怎样才能从用户那里获取输入? 如果我编辑第一个程序,那么我不能接受输入,直到这行“str = new char [];”被执行。并且长度只能在此行中给出。 并且只有在获取字符串之后才能给出长度。

1 个答案:

答案 0 :(得分:0)

你有一些错误,但主要是:

str = new char[];

这不是有效的C ++语法。您应该指定已分配内存的大小。但如果你不知道,你需要多少内存,你应该使用std::string

#include <iostream>
#include <string>

int main()
{
    std::string str;
    std::cin >> str;

    std::cout << "str = " << str << std::endl;
    return 0;
}

另一个问题 - 每new个内存应为delete d。