C++ I/O流(二)——输入流

发布于:2024-05-16 ⋅ 阅读:(41) ⋅ 点赞:(0)

四、文件输入流

 istream类最适合用于顺序文本模式输入

 ifstream类支持磁盘文件输入

istringstream类支持把字符串作为输入流

提取运算符(>>):

使用进制修饰符,修改输入数据的进制形式。

代码示例:输入三个十进制数,转换为三种不同的进制数,并输出。

#include <iostream>
#include <iomanip>//引用控制输出的头文件
using namespace std;

int main()
{
    int n1,n2,n3;
    cin>>hex>>n1>>dec>>n2>>oct>>n3;
    cout<<"-------------"<<endl;
    cout<<n1<<endl<<n2<<endl<<n3<<endl;
    return 0;
}

运行结果:

10
10
10
-------------
16
10
8

五、文件输入流

文件输入流ifstream及其对象

在C++中,文件输入流ifstream用于从文件中读取数据。首先需要包含<fstream>头文件,然后可以按照以下步骤来操作文件输入流ifstream及其对象:

1、创建ifstream对象:可以通过以下方式创建一个ifstream对象并打开文件:

#include <fstream>
ifstream file("example.txt")

2、检查文件是否成功打开:在创建ifstream对象后,需要检查文件是否成功打开,可以使用is_open()方法:

if (file.is_open()) {
    // 文件成功打开
} else {
    // 文件打开失败
}

3、从文件中读取数据:可以使用ifstream对象的各种输入操作符(如>>)来从文件中读取数据:

int number;
file >> number; // 从文件中读取一个整数并存储在number变量中

4、逐行读取文件内容:如果需要逐行读取文件内容,可以使用getline()方法:

string line;
while (getline(file, line)) {
    // 处理每一行的内容
}

注:getline的功能是从输入流中读取多个字符,并且允许指定输入终止字符,读取完成后,从读取的内容中删除终止字符。 

5、当数据输入完成后,关闭文件:在文件操作完成后,记得关闭文件以释放资源:

file.close();

六、案例分析

1、定义函数input,通过键盘输入一组文字(多行),保存到文本文件abc.txt中。

2、定义函数output,打开文本文件abc.txt,逐行读出文字,在控制台输出。(getline函数)

#include <iostream>
#include <fstream>
#include <string>
using namespace std;

void input()
{
    ofstream os("abc.txt");//os文件输入流对象
    string line;
    if(os){
        while(getline(cin,line))//将输入的字符串保存到line中
        {
            if(line == "quit")
            {
                break;
            }
            os<<line<<endl;
        }
        os.close();
    }
}
void output()
{
    ifstream is("abc.txt");
    string line;
    if(is){
        while(getline(is,line))
        {
            cout<<line<<endl;
        }
        is.close();
    }
}
int main()
{
    cout<<"请输入信息,以'quit'结束"<<endl;
    input();
    cout<<"保存到文件中的信息有:"<<endl;
    output();
    return 0;
}

运行结果:生成abc.txt文件,并将输入的信息保存到文件中。

请输入信息,以'quit'结束
dfasdf
dfa
adfdasg
quit
保存到文件中的信息有:
dfasdf
dfa
adfdasg


网站公告

今日签到

点亮在社区的每一天
去签到