对cin感到好奇

Curious about cin

本文关键字:好奇 cin      更新时间:2023-10-16

我对编程很陌生,并试图尽可能多地学习。我很好奇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(行尾((