对cin感到好奇
Curious about cin
我对编程很陌生,并试图尽可能多地学习。我很好奇cin char到底是做什么的。当我输入一个单词时,唯一输出的是单词的第一个字母。这是应该发生的吗?
#include <iostream>
using namespace std;
int main()
{
char ch;
cin >> ch;
cout << "Thank you for entering " << ch << endl;
return 0;
}
我想输出整个单词或短语,但这似乎没有发生。谢谢!
char
是单个字符。当这是你阅读的目的地时,你会得到一个字符。
如果要读取多个字符(字符串(,请读入std::string
而不是char
。
要阅读超过一个单词(因为std::cin
将停止在空格处(,请查看std::getline
。
问题:
是的,这应该发生。C++中的 char 是一种只能存储字符的变量。因此,cin 将仅从输入流中获取第一个字母。如果要输出单词,请使用字符串变量。
有关C++变量类型的详细信息:http://www.cplusplus.com/doc/tutorial/variables/
我想输出整个单词或短语,但这并没有 似乎正在发生
要输出整个单词或短语,您必须为单词或短语保留内存。
声明中char
类型的对象
char ch;
只能存储一个字符。
请改用标准C++类 std::string
的对象。该程序可以如下所示
#include <iostream>
#include <string>
using namespace std;
int main()
{
string s;
getline( cin, s );
cout << "Thank you for entering " << s << endl;
return 0;
}
或者没有使用指令(建议
(#include <iostream>
#include <string>
int main()
{
std::string s;
std::getline( std::cin, s );
std::cout << "Thank you for entering " << s << std::endl;
return 0;
}
那是因为你使用char
类型。Char 表示输入字符串的 1 个字符。只需使用string
类型(包含在"字符串">模块中(。
PS:预测您的下一个问题 - 您可以使用cin.getLine()
函数下次读取整个输入字符串。因为cin
函数读取整个符号,直到whitespace
字符(作为空格或CC_14(行尾((
相关文章:
- C++中的cin.ignore()函数不适用于整个流
- 在while循环中输入带有std::cin的字符串后,控制台会输出大量胡言乱语
- Problems with std::cin.fail()
- 由cin中的字符串中未捕获空白引起的分割错误
- 在C++中使用Cin,我如何在1行中输入
- 将 cin 限制为只有一个
- cin >> int 给定一个字符串将 int 赋值为 0
- istream std::cin如何修改自定义istream缓冲区
- C++ 将 CIN 值存储到任何类型的数组中
- 为什么无论你输入什么,这"while(cin.get(str,3))"只运行一次?
- cin 的十进制输入验证?
- Turbo C++ cin() 不能与 gets() 一起使用
- 使用 cin 时接受小数点后的 2 位数字
- 在 std::getline 和 std::cin 期间卡在循环中
- 我无法在Visual Studio代码中使用CIN输入答案,它说输入您的年龄,但它说只读文本编辑器如何解决这个问题?
- 为什么我的两个 cin 语句没有在程序结束时运行?
- C++ cin.ignore() 跳过循环
- CIN是逻辑1还是0?
- 如何运行多行 cin?
- 对cin感到好奇