C++程序设计【七】之 输入/输出流

感谢内容提供者:金牛区吴迪软件开发工作室
接上一篇:C++程序设计【六】之 多态与虚函数

第七章:输入/输出流

一、流类简介

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、标准流对象

在这里插入图片描述

#include<iostream>

using namespace std;

int main() {
    
    
    int x, y;
    cin >> x >> y;
    freopen("test.txt", "w", stdout);   // 将标准输出重定向到文件test.txt
    if (y == 0) {
    
       // 除数为0则输出错误信息
        cerr << "error." << endl;
    } else {
    
    
        cout << x << "/" << y << "=" << x / y << endl;
    }
    return 0;
}
#include<iostream>

using namespace std;

int main() {
    
    
    int x, count, sum = 0;
    freopen("input.txt", "r", stdin);   // 将标准输入重定向到文件input.txt
    for (count = 0; count < 10; count++) {
    
      // 从输入流中读入10个整数进行处理
        cin >> x;
        if (cin.eof()) {
    
      // 到了文件的结尾的话  
            break;	// 若输入流已经结束则退出
        } else {
    
    
            sum += x;
        }
    }
    cout << "前10个整数的平均值= " << 1.0 * sum / 10 << endl;
    return 0;
}

三、控制I / O格式

在这里插入图片描述

1.流操纵符

在这里插入图片描述
在这里插入图片描述

#include<iostream>
#include<iomanip>

using namespace std;

int main() {
    
    
    int n = 65535, m = 20;
    // 1。分别输出一个整数的十进制、十六进制和八进制表示
    cout << "1)" << n << "=" << hex << n << "=" << oct << n << endl;
    // 2.使用setbase分别输出一个整数的十进制、十六进制和八进制表示
    cout << "2)" << setbase(10) << m << "=" << setbase(16) << m << "=" << setbase(8) << m << endl;
    // 3.使用showbase和setbase分别输出一个整数的十进制、十六进制和八进制表示
    cout << "3)" << showbase;   // 输出表示数值进制的前缀
    cout << setbase(10) << m << "=" << setbase(16) << m << "=" << setbase(8) << m << endl;
    return 0;
}
#include<iostream>
#include<iomanip>

using namespace std;

int main() {
    
    
    double x = 12.34;
    cout << "1." << setiosflags(ios::scientific | ios::showpos) << x << endl;
    cout << "2." << setiosflags(ios::fixed) << x << endl;
    cout << "3." << resetiosflags(ios::fixed) << setiosflags(ios::scientific | ios::showpos) << x << endl;
    cout << "4." << resetiosflags(ios::showpos) << x << endl;   // 清楚要输出正号的标志
    return 0;
}

2.标志字

在这里插入图片描述

四、调用cout的成员函数

在这里插入图片描述

#include<iostream>

using namespace std;

int main() {
    
    
    double values[] = {
    
    1.23, 20.3456, 300.4567, 4000.45678, 50000.1234567};
    cout.fill('*'); // 设置填充字符为星号*
    for (int i = 0; i < sizeof(values) / sizeof(double); i++) {
    
    
        cout << "values[" << i << "]=(";
        cout.width(10); // 设置输出宽度
        cout << values[i] << ")" << endl;
    }
    cout.fill(' '); // 设置填充字符为空格
    int j;
    for (j = 0; j < sizeof(values) / sizeof(double); j++) {
    
    
        cout << "values[" << j << "]=(";
        cout.width(10); // 设置输出宽度
        cout.precision(j + 3);  // 设置保留有效数字
        cout << values[j] << ")" << endl;
    }
    return 0;
}
#include<iostream>

using namespace std;

int main() {
    
    
    char str[30] = "0123456789";
    cout.write(str, 5); // 将str的前5个字节写入到输出流中
    return 0;
}

五、调用cin的成员函数

在这里插入图片描述

1.get() 函数

在这里插入图片描述

2.getline()函数

在这里插入图片描述

#include<iostream>
using namespace std;

int main() {
    
    
    char buf[10];
    int i = 0;
    // 若输入流的一行超过9个字符,则后面的会被抛弃且退出循环
    while(cin.getline(buf, 10)) {
    
    
        cout << ++i << ":" << buf << endl;
    }
    cout << "last:" << buf << endl;
    return 0;
}

3.eof() 函数

在这里插入图片描述

4.ignore() 函数

在这里插入图片描述

#include<iostream>

using namespace std;

int main() {
    
    
    char str[30];
    while(!cin.eof()) {
    
    
        cin.ignore(10, ':');
        if (!cin.eof()) {
    
    
            cin >> str;
            cout << str << endl;
        }
    }
    return 0;
}

5.peek() 函数

在这里插入图片描述

下一篇:C++程序设计【八】之 文件操作

猜你喜欢

转载自blog.csdn.net/weixin_43606158/article/details/114240364