我对编程非常陌生,并尝试学习尽可能多的东西。我对cin char到底能做什么感到很好奇。当我输入一个单词时,唯一输出的是单词的第一个字母。这应该发生吗?
#include <iostream>
using namespace std;
int main()
{
char ch;
cin >> ch;
cout << "Thank you for entering " << ch << endl;
return 0;
}
我想输出整个单词或短语,但这似乎没有发生。谢谢!
答案 0 :(得分:5)
char
是一个字符。当那是您阅读的目的地时,您将获得一个字符。
如果您想读取多个 个字符(一个字符串),请读入std::string
而不是char
。
要阅读多个单词(由于std::cin
将停在空白处),请查看std::getline
。
答案 1 :(得分:1)
问题:
是的,这应该发生。 C ++中的char是只能存储字符的一种变量。因此,cin将仅从输入流中获取第一个字母。如果要输出单词,请使用字符串变量。
有关C ++变量类型的更多信息:http://www.cplusplus.com/doc/tutorial/variables/
答案 2 :(得分:1)
那是因为您使用char
类型。 Char表示输入字符串的1个字符。只需使用string
类型(包含在“字符串” 模块中)。
PS:预测下一个问题–下次可以使用cin.getLine()
函数读取整个输入字符串。因为cin
函数会读取整个符号,直到whitespace
字符为止(如空格或
EOL
(行尾))
答案 3 :(得分:1)
我想输出整个单词或短语,但是那不是 似乎正在发生
要输出整个单词或短语,您必须为单词或短语保留内存。
声明中类型为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;
}