C++ 基本输入/输出

  • 基本输入/输出

    C ++标准库提供了广泛的输入/输出函数集,我们将在后续章节中看到。本章将讨论C++编程所需的非常基本和最常见的I/O操作。C++ I/O发生在流中,流是字节序列。如果字节从键盘,磁盘驱动器或网络连接等设备流向主存储器,则这称为输入操作,并且如果字节从主存储器流向显示屏,打印机,磁盘驱动器等设备或网络连接等,这称为输出操作。
  • I/O库头文件

    以下是对C++程序重要的头文件-
    I/O库 说明
    <iostream> 该文件定义了cin,cout,cerr和clog对象,它们分别对应于标准输入流,标准输出流,未缓冲的标准错误流和缓冲的标准错误流。
    <iomanip> 该文件声明了对于通过所谓的参数化流操纵器(例如setw和setprecision)执行格式化的I / O有用的服务。
    <fstream> 该文件声明用于用户控制文件处理的服务。我们将在与文件和流相关的章节中详细讨论它。
  • 标准输出流(cout)

    预定义对象cout是ostream类的一个实例。cout对象被称为“连接到”标准输出设备,通常是显示屏。cout与流插入操作符一起使用,该操作符被编写为<<,它是两个小于符号,如下面的示例所示。
    
    #include <iostream>
     
    using namespace std;
     
    int main() {
       char str[] = "Hello C++";
     
       cout << "Value of str is : " << str << endl;
    }
    
    尝试一下
    编译并执行上述代码后,将产生以下结果-
    
    Value of str is : Hello C++
    
    C++编译器还确定要输出的变量的数据类型,并选择适当的流插入运算符以显示该值。<<操作符被重载以输出内置类型整数,浮点数,双精度,字符串和指针值的数据项。如上所示,插入运算符<<可以在单个语句中多次使用,并且endl用于在该行的末尾添加换行。
  • 标准输入流(cin)

    预定义对象cin是istream类的一个实例。这个cin对象被称为附加在标准的输入设备上,通常是键盘。cin与流提取操作符一起使用,该操作符写成>>,如下例所示,它是两个大于符号。
    
    #include <iostream>
     
    using namespace std;
     
    int main() {
       char name[50];
     
       cout << "Please enter your name: ";
       cin >> name;
       cout << "Your name is: " << name << endl;
     
    }
    
    上面的代码编译并执行后,将提示您输入一个名称。输入一个值,然后按Enter键以查看以下结果-
    
    Please enter your name: cplusplus
    Your name is: cplusplus
    
    C ++编译器还确定输入值的数据类型,并选择适当的流提取运算符以提取值并将其存储在给定变量中。在单个语句中,可以多次使用流提取运算符>>。要请求多个基准,可以使用以下命令:
    
    cin >> name >> age;
    
    这将等效于以下两个语句-
    
    cin >> name;
    cin >> age;
    
  • 标准错误流(cerr)

    预定义对象cerr是ostream类的一个实例。cerr对象被称为附加到标准错误设备上,该设备也是一个显示屏幕,但是对象cerr没有缓冲,并且每个流插入到cerr会导致其输出立即出现。cerr还与流插入操作符一起使用,如下面的示例所示。
    
    #include <iostream>
     
    using namespace std;
     
    int main() {
       char str[] = "Unable to read....";
     
       cerr << "Error message : " << str << endl;
    }
    
    尝试一下
    上面的代码编译并执行后,产生以下结果-
    
    Error message : Unable to read....
    
  • 标准日志流(clog)

    预定义对象clog是ostream类的一个实例。clog对象被称为附加到标准错误设备,该设备也是一个显示屏,但是对象clog被缓冲。这意味着每次要阻塞的插入都可能导致其输出保存在缓冲区中,直到缓冲区被填满或缓冲区被刷新。clog还与流插入操作符一起使用,如下面的示例所示。
    
    #include <iostream>
     
    using namespace std;
     
    int main() {
       char str[] = "Unable to read....";
     
       clog << "Error message : " << str << endl;
    }
    
    尝试一下
    上面的代码编译并执行后,产生以下结果-
    
    Error message : Unable to read....
    
    通过这些小示例,您将看不到cout,cerr和clog的任何区别,但是在编写和执行大型程序时,区别变得明显。因此,最好的做法是使用cerr流显示错误消息,并在显示其他日志消息时使用clog。