0

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

#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[];”我才能接受输入 被执行。并且长度只能在这一行中给出。并且只能在获取字符串之前给出长度。

4

1 回答 1

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;
}

另一个问题 - 每个newed 内存都应该是deleted。

于 2013-05-28T15:20:47.577 回答