C++ 输入输出流详解


对C++学习感兴趣的可以看看这篇文章哦:C/C++教程

一、cout

1.原理

在C++中,cout是标准输出流对象。它是一个类似于文件流的对象,其主要作用是将输出内容从程序传递到控制台或文件中。

cout的原理是利用流操作符 “<<”,将要输出的内容插入到输出流中,并在最后通过终止操作符 endl 将输出流中的内容输出到控制台或文件中。

常见用法:

  1. 输出字符串

可以使用cout输出字符串,只需将字符串作为参数传递给cout即可。

cout << "Hello World!" << endl;
  1. 输出变量

可以使用cout输出变量,只需将变量名作为参数传递给cout即可。

int num = 10;
cout << num << endl;
  1. 输出表达式

可以使用cout输出表达式,只需将表达式作为参数传递给cout即可。

int num1 = 10, num2 = 20;
cout << "The sum of " << num1 << " and " << num2 << " is " << num1 + num2 << endl;

2.常用函数

  1. setw()

setw()函数可以设置输出字段的宽度,其参数为整数类型,表示输出字段的宽度。如果输出字段宽度小于指定宽度,则输出时会在字段前补空格。

int num = 10;
cout << setw(5) << num << endl; // 输出 "   10"
  1. setprecision()

setprecision()函数可以设置浮点数的输出精度,其参数为整数类型,表示浮点数输出的精度。注意,该函数需要与fixed一起使用才能起作用。

double num = 3.14159265358979;
cout << setprecision(4) << fixed << num << endl; // 输出 "3.1416"
  1. flush()

flush()函数可以将输出流中的内容强制输出到屏幕或文件中,但不会在最后加上一个换行符。

cout << "Hello";
flush(); // 将"Hello"输出到屏幕
cout << "World" << endl; // 输出 "World" 并换行

3.注意事项

  1. 输出多个变量或字符串时,可以使用流插入符 “<<” 连接多个输出项,避免多次调用cout函数。

  2. 对于浮点数的输出,需要使用fixed和setprecision()函数才能保证输出的精度正确。

  3. 在输出字符串时,需要注意字符串中的转义字符,例如换行符 “\n” 和制表符 “\t”。

  4. 在输出字符时,需要将字符用单引号包括起来,例如 ‘a’。

  5. 在输出布尔值时,true和false会分别被解释为1和0。

二、cin

1.原理

cin是C++中标准输入流对象,用于从用户输入设备(通常是键盘)读取数据。cin对象是基于istream类的实例化对象,继承了istream类的所有方法和属性,可以通过输入运算符“>>”来从输入流中读取数据。cin对象是标准输入流对象,它是一个全局对象,可以在程序的任何地方使用。

2.常用函数

  1. get()函数:从输入流中读取一个字符,并将其返回。如果没有更多字符可供读取,则返回EOF(-1)。
  2. getline()函数:从输入流中读取一行字符串,并将其存储到指定的字符数组中。getline()函数遇到换行符或文件结束符时停止读取。
  3. ignore()函数:从输入流中忽略指定数量的字符或指定的分隔符。
  4. peek()函数:从输入流中读取下一个字符,但不将其从输入流中移除。如果没有更多字符可供读取,则返回EOF(-1)。

cin的使用方法:

使用cin对象可以通过输入运算符“>>”来从输入流中读取数据。具体用法如下:

#include <iostream>
using namespace std;

int main() {
    
    
   int num;
   cout << "请输入一个整数:";
   cin >> num;
   cout << "您输入的整数是:" << num << endl;
   return 0;
}

3.注意事项

  1. cin读取用户输入时,要确保输入的数据类型与要读取的数据类型相匹配。如果输入的数据类型不正确,将会导致程序出错。
  2. 当读取字符串时,如果字符串中包含空格或制表符,则cin只会读取第一个单词。如果需要读取整个字符串,可以使用getline()函数。
  3. 如果在读取输入时遇到错误或输入不正确,cin会将错误标志设置为“true”,需要使用clear()函数来清除错误标志并重新输入。
  4. 在读取输入时,cin会将换行符留在输入流中。如果在之后的读取操作中需要读取换行符,可以使用get()函数或忽略掉换行符。

猜你喜欢

转载自blog.csdn.net/weixin_50964512/article/details/130022037