#include<iostream.h>
#include<conio.h>
class String
{
char str[100];
public:
void input()
{
cout<<"Enter string :";
cin>>str;
}
void display()
{
cout<<str;
}
};
int main()
{
String s;
s.input();
s.display();
return 0;
}
我在Turbo C ++ 4.5中工作。代码运行正常,但它没有提供所需的输出 例如,如果我将输入视为“steve hawking”,则仅显示“steve”。有人可以帮忙吗?
答案 0 :(得分:22)
在流上使用>>
一次读取一个单词。要将整行读入char
数组:
cin.getline(str, sizeof str);
当然,一旦你学会了如何实现字符串,你应该使用std::string
并将其读作
getline(cin, str);
从本世纪开始编译器也是一个非常好的主意;你的年龄超过15岁,从那时起C ++发生了重大变化。如果您想要一个免费的Windows编译器,Visual Studio Express是一个不错的选择;其他编译器可用。
答案 1 :(得分:3)
cin>>str;
这只会读入下一个标记。在C ++ iostream中,令牌由空格分隔,因此您得到第一个单词。
你可能想要getline,它将整行读成一个字符串:
getline(cin, str);
答案 2 :(得分:2)
您可以使用:
cin.read( str, sizeof(str) );
但是,这将填满缓冲区。相反,你应该使用cin.getLine()作为MikeSeymour建议
答案 3 :(得分:1)
您可以使用cin.getline来读取整行。
答案 4 :(得分:0)
使用此
cin.getline(cin, str);