C++ "cin"只读第一个单词

C++ "cin" only reads the first word

本文关键字:单词 第一个 cin C++ 只读      更新时间:2023-10-16
#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 工作。代码运行良好,但未提供所需的输出例如,如果我输入为"史蒂夫霍金",则仅显示"史蒂夫"。谁能帮忙?

在流中使用>>一次读取一个单词。要将整行读入char数组:

cin.getline(str, sizeof str);

当然,一旦你学会了如何实现一个字符串,你应该使用std::string并将其读作

getline(cin, str);

本世纪获得编译器也是一个非常好的主意;你的编译器已经超过 15 岁了,从那时起C++发生了重大变化。如果你想要一个免费的Windows编译器,Visual Studio Express是一个不错的选择;其他编译器可用。

cin>>str;

这仅在下一个令牌中读取。在 iostream C++中,标记由空格分隔,因此您可以获得第一个单词。

你可能想要getline,它将整行读成一个字符串:

getline(cin, str);

您可以使用:

   cin.read( str, sizeof(str) );

但是,这将填满缓冲区。相反,你应该按照 MikeSeymour 的建议使用 cin.getLine((

您可以使用cin.getline来读取整行。

使用这个

cin.getline(cin, str);