C++从键盘输入一个字符串

#include <iostream>
using namespace std;
int main()
{
char *str = new char;
cin>>str;
cout<<str<<endl;
return 0;
}

我是这样写的 但我不知道这为什么是对的 或者这里有什么潜在的错误我不知道而已 请教高人指点一二

另外我对C++理解很浅,有没有什么书可以推荐

你new了一个指针对象,没有用delete释放,会发生内存泄露
你分配的空间大小只有1个字符,这样就没有空间放结束符了。
你可以参考下面的写法。
#include <iostream>
using namespace std;
int main()
{
    char str[10] = {0};
    cin>>str;
    cout<<str<<endl;
    return 0;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-04-15
#include <iostream>
using namespace std;
int main()
{
char *str = new char[50];
cin>>str;
cout<<str<<endl;
delete [] str;
return 0;
}
最好这样写,你那样写的话会出错的,当你一次输入20个字节以上的时候应该就会报错了
C++书籍的话,推荐C++primer
相似回答