zoukankan      html  css  js  c++  java
  • 输入输出流

    C++输入输出

    #include <iostream>
    #include <string>
    
    using namespace std;
    
    int main() {
        string url;
        cin >> url;
        cout << "cout: " << url << endl;
        cerr << "cerr: " << url << endl;
        clog << "clog: " << url << endl;
        return 0;
    }

    运算符重载

    格式:

    friend istream& operator>>(istream& is, className& a);
    
    cin >> a; <==> operator(cin, a);
    
    // 参数输入流对象的引用和输入流有什么联系?
    #include <iostream>
    
    using namespace std;
    
    class A {
       private:
        float x, y;
    
       public:
        A(float a = 0, float b = 0) {
            this->x = a;
            this->y = b;
        }
        void set(int a, int b) {
            this->x = a;
            this->y = b;
        }
        void show() { cout << this->x << "	" << this->y << endl; }
    
        friend istream& operator>>(istream& is, A& a);
        friend ostream& operator<<(ostream& os, const A& a);
    };
    
    istream& operator>>(istream& is, A& a) {
        is >> a.x >> a.y;
        return is;
    }
    
    ostream& operator<<(ostream& os, const A& a) {
        os << a.x << "	" << a.y << endl;
        return os;
    }
    
    int main() {
        A a;
        cin >> a;
        cout << a;
        return 0;
    }

    输入输出流的重定向

    方法一:

    #include <stdio.h>
    
    #include <iostream>
    #include <string>
    
    using namespace std;
    
    int main() {
        string name, url;
        // 将标准输入重定向到io3.txt中
        freopen("io3.txt", "r", stdin);
        cin >> name >> url;
        // 将标准输出重定向到out3.txt中
        freopen("out3.txt", "w", stdout);
        cout << name << "
    " << url;
        return 0;
    }

    方法二:

    #include <stdio.h>
    
    #include <iostream>
    #include <string>
    
    using namespace std;
    
    int main() {
        string name, url;
        cin >> name >> url;
        cout << name << "
    " << url;
        return 0;
    }

     在命令行中也可以对文件进行重定向操作。

    输出格式

    头文件:iomanip.h

    (图片来源:http://c.biancheng.net/view/275.html)

    #include <iomanip>
    #include <iostream>
    
    using namespace std;
    
    int main() {
        int a;
        cout << "Please input a:";
        cin >> a;
        cout << "dex:" << dec << a << endl;
        cout << "hex:" << hex << a << endl;
        cout << "oct:" << setbase(8) << a << endl;
        char pt[10] = "China";
        cout << setw(10) << pt << endl;
        cout << setfill('*') << setw(10) << pt << endl;
        double pi = 22.0 / 7.0;
        cout << setiosflags(ios::scientific) << setprecision(8);
        cout << "pi = " << pi << endl;
        cout << "pi = " << setprecision(4) << pi << endl;
        cout << "pi = " << setiosflags(ios::fixed) << pi << endl;
    
        return 0;
    }

    输出结果:

     注:

    cout << hex << a << endl;
    // 等同于
    cout.setf(hex);
    cout << a << endl;

    常用成员函数

    cout.put():用于向缓冲区添加单个字符

    格式:

    ostream&put(char c);

    #include <iostream>
    #include <string>
    
    using namespace std;
    
    int main() {
        string str;
        freopen("io3.txt", "r", stdin);
        cin >> str;
        freopen("out3.txt", "w", stdout);
        for (int i = str.length() - 1; i >= 0; --i) {
            cout.put(str[i]);
        }
        return 0;
    }

     cout.write():用于向输出缓冲区中添加指定字符串

    格式:

    ostream&write(const char * s,streamsize n);

    因为返回值是一个ostream对象,所以可以像下面的方式使用write方法

    cout.write(c1, 1).write(c2, 2).write(c3, 3);

    #include <iostream>
    
    using namespace std;
    
    int main() {
        char str[100] = "www.xxxx.xxx.xx";
        cout.write(str, 5).write(str, 3);
        return 0;
    }

    注:连写的时候每次都是从第一个字符开始计数。

    永远渴望,大智若愚(stay hungry, stay foolish)
  • 相关阅读:
    21--数据库优化
    20--mysql读写分离,分库分表
    18--mysql主从复制、及架构
    17--数据快速导出、导入,数据库迁移
    16--mysql数据备份
    15--mysql日志管理
    14--mysql锁机制
    13--mysql事务详解,数据库读现象
    etcd原理详解代码剖析
    k8s入坑之路(10)kubernetes coredns详解
  • 原文地址:https://www.cnblogs.com/h-hkai/p/14781322.html
Copyright © 2011-2022 走看看