一、基本概念
C++标准输入是C++中实现从控制台读取用户输入的数据的方法。标准输入通常用于读取用户键入的命令行参数或者交互式程序中用户的输入。
标准输入可以通过从流中读取值来实现。C++标准库定义了两个流对象来表示标准输入,分别是std::cin和std::wcin,其中std::cin用于读取ASCII字符流,std::wcin用于读取宽字符流。
二、读取基本数据类型
从标准输入中读取基本数据类型(如int、float、double、char等)非常简单。从流中读取数值,通常使用流提取运算符(>>)操作符,将读取的值赋给变量。
int num; std::cin >> num;
上述代码从标准输入中读取一个int类型的值,并将其赋给变量num。
需要注意的是,使用流提取运算符(>>)操作符时,应当保证输入流(std::cin)是有效的,否则将可能会导致程序停止运行。
三、读取字符串
C++中读取字符串通常使用流提取运算符(>>)操作符。但是由于C++中字符串是以空格为分隔符的,所以它通常只能读取一个单词,而无法读取一个完整的字符串。
为了读取整个字符串,我们可以使用getline()函数。该函数从流中读取到换行符(或指定分隔符)时停止,并将读取的内容存储在一个std::string类型的变量中。
std::string name; std::getline(std::cin, name);
上述代码从标准输入中读取一个字符串,并将其赋给变量name。
四、综合示例
下面是一个综合示例,演示如何从标准输入中读取不同类型的值。
#include <iostream> #include <string> int main() { int num1, num2; float fnum; std::string name; std::cout << "请输入两个整数和一个浮点数,以及您的名字:" << std::endl; std::cin >> num1 >> num2 >> fnum; std::cin.ignore(); // 忽略任何剩余的字符,例如换行符 std::getline(std::cin, name); std::cout << "num1 = " << num1 << ", num2 = " << num2 << ", fnum = " << fnum << ", name = " << name << std::endl; return 0; }
上述代码演示了从标准输入中读取整数、浮点数和字符串、并将读取的结果打印到控制台。