C++ "cin"只读第一个单词
C++ "cin" only reads the first word
#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);
相关文章:
- 为什么它只打印双链接列表的第一个值,而我的程序却崩溃了
- std::find,返回所有找到的值的替代方法,而不仅仅是存在重复的向量的第一个值
- 如何仅读取文本文件中的第一个值
- 在C++中,如何在第一个"system()"结束后执行第二个"system()"?
- 查找不在标准中的第一个值::设置<int>最小-最大值
- C++:忽略第一个 cin.ignore 之后的输入
- 在C++中打印多个矢量的第一个值
- C++去除前x个元素的有效方法,在不改变向量大小的情况下将第x+1个元素推到第一个
- C++第一个cout将不会打印
- 我们可以在第一个else-if条件结束后使用另一个else-if条件吗
- OpenGL:第二个VBO破坏了第一个VBO
- 为什么第一个Dynamic_cast没有投射到基类?
- 如何将行的第一个单词作为一个变量,将行的其余部分作为另一个变量进行归档/存储
- OpenGL 2D游戏只绘制第二个精灵纹理而不是第一个
- C++ 为什么程序只读取第一个值
- 在我的第一个C++程序中需要一些帮助(简单)
- 为什么我的代码在第一个 if 语句处中断?
- 是否可以从另一个类对象调用一个类函数而不继承第一个类
- 无法使我的第一个Windows OpenGL窗口抬起并运行
- 将参数初始化为构造函数,而不是第一个