C ++中为什么没办法输出文件中的内容

可以向文件中输入内容,但是无法将文件中的内容输出
#include<iostream>
#include<fstream>
using namespace std;    
#include<string>
int main()
{
    int n, i;
    int a[100];  
    fstream f1;
    f1.open("zhengshu.txt",ios::out);
    cout<<"请输入一个整数n和n个自然数字:";
    cin>>n;
    for(i=0;i<n;i++)
    {
        cin>>a[i];
        f1<<a[i]<<" ";
    }
    f1.open("zhengshu.txt",ios::in);
    if(!f1.is_open())
        cout<<"文件打开失败!"<<endl;
    while(f1>>a[100])
        cout<<"read from zhengshu:"<<a<<" "; 
    f1.close();
    return 0;
} 

可以运行,不报错,就是无法输出文件内容

写入文件后,要先关闭写入时打开的文件流。否则上一个流占用了当前文件,会读取不到。

#include<iostream>
#include<fstream>
using namespace std;    
#include<string>
int main()
{
    int n, i;
    int a[100];  
    fstream f1;
    f1.open("zhengshu.txt",ios::out);
    cout<<"请输入一个整数n和n个自然数字:";
    cin>>n;
    for(i=0;i<n;i++)
    {
        cin>>a[i];
        f1<<a[i]<<" ";
    }
    f1.close();
    f1.open("zhengshu.txt",ios::in);
    if(!f1.is_open())
        cout<<"文件打开失败!"<<endl;
    string buff;
    while (getline(f1, buff))
        cout<<"read from zhengshu:"<<buff<<" "; 
    f1.close();
    return 0;
}