📜  C++ cin cout - C++ (1)

📅  最后修改于: 2023-12-03 14:39:49.490000             🧑  作者: Mango

C++的输入输出流

在C++中,我们可以使用输入输出流来实现程序的输入输出操作。输入流主要用于从外部读取数据,输出流则主要用于将数据写入外部。

实现输入输出流的基本头文件

使用输入输出流时,需要包含iostream头文件

#include <iostream>

使用文件流时,需要包含fstream头文件

#include <fstream>
输入输出流的基本功能

标准输入输出流

标准输入流就是从键盘输入数据,标准输出流就是向屏幕输出数据。可以使用cin和cout来实现标准输入输出。

#include <iostream>

using namespace std;

int main()
{
    int num;
    cout << "Please enter a number:" << endl;
    cin >> num;
    cout << "The number you entered is: " << num << endl;
    return 0;
}

输出结果为:

Please enter a number:
10
The number you entered is: 10

文件输入输出流

文件输入输出流可以读写文件。

写入文件

在写入文件时,需要用ofstream类型的对象来打开文件,并通过 << 操作符向文件中写入数据。关闭文件需要使用close()函数。

#include <iostream>
#include <fstream>

using namespace std;

int main()
{
    ofstream fout("example.txt");
    if (!fout)
    {
        cout << "Cannot open file." << endl;
        return -1;
    }
    fout << "This is an example." << endl;
    fout << "Hello World!" << endl;
    fout.close();
    return 0;
}
读取文件

在读取文件时,需要用ifstream类型的对象来打开文件,并通过 >> 操作符从文件中读取数据。关闭文件需要使用close()函数。

#include <iostream>
#include <fstream>

using namespace std;

int main()
{
    ifstream fin("example.txt");
    if (!fin)
    {
        cout << "Cannot open file." << endl;
        return -1;
    }
    string line;
    while (getline(fin, line))
    {
        cout << line << endl;
    }
    fin.close();
    return 0;
}
输入输出流的高级用法

控制输入输出格式

C++提供了多种控制输入输出格式的方式,包括:

  • setw():控制字段宽度;
  • setprecision():控制浮点精度;
  • setfill():控制填充字符;
  • setiosflags():控制输出格式。
#include <iostream>
#include <iomanip>

using namespace std;

int main()
{
    int num = 10;
    double d = 3.14159;
    cout << setw(10) << num << endl;
    cout << setprecision(4) << d << endl;
    cout << setfill('*') << setw(10) << num << endl;
    cout << setiosflags(ios::fixed) << setprecision(3) << d << endl;
    return 0;
}

输出结果为:

        10
3.142
********10
3.142

重定向输入输出流

可以使用freopen()函数来重定向输入输出流。

#include <iostream>
#include <cstdio>

using namespace std;

int main()
{
    freopen("input.txt", "r", stdin);
    freopen("output.txt", "w", stdout);

    int a, b;
    cin >> a >> b;
    cout << a + b << endl;

    return 0;
}

input.txt文件内容为:

1 2

输出结果将写入output.txt文件中。