2
#include<iostream>
#include<fstream>
using namespace std;
int main()
{
ofstream fout("student",ios::out);
char name[30],ch;
float marks=0.0;
for(int i=0;i<5;i++)
{
cout<<"Stud"<<(i+1)<<":\tName";
cin.get(name,30);
cout<<"\tMarks";
cin>>marks;
cin.get(ch);
fout<<name<<'\n'<<marks<<'\n';
}
fout.close();
ifstream fin("student",ios::in);
fin.seekg(0);
cout<<"\n";
for(int i=0;i<5;i++)
{
fin.get(name,30);
fin.get(ch);
fin>>marks;
fin.get(ch);
cout<<name<<marks;
}
fin.close();
}
現在,有兩件事我不明白。爲什麼在寫入文件時需要cin.get(ch)(我的教科書說清除輸入緩衝區) 。這樣做有何幫助?我對清除緩衝區沒有太多知識,它如何影響以下迭代?用C++編寫的文件
此外,如果我在寫'\ n'的文件時沒有分開名稱和標記怎麼辦? 而且,在閱讀我讀它像
fin>>get(name,30);
fin>>marks;
在運行我注意到,只有第一次迭代的值被重複5次節目。 這是爲什麼呢?