繁体   English   中英

如何在文件处理中使用 for 循环获取多个输入?

[英]How can I take mulltiple inputs using a for loop in file handling?

循环完成后,文件中只写入最后一条数据; 我该如何解决这个问题?

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

int main(){
    char name[50];
    char reg[10];
    char address[100];
    char nationality[50];
    char cnumber[50];
    char marks[50]; 
    for(int i=1;i<=3;i++)
    {
        cout<<"Please enter the following data"<<endl;
        cout<<endl;
        cout<<"enter your name\n";
        cin.getline(name,50);
        cout<<"enter your reg no.\n";
        cin.getline(reg,10);
        cout<<"enter your address\n";
        cin.getline(address,100);
        cout<<"enter your nationality\n";
        cin.getline(nationality,50);
        cout<<"enter your number\n";
        cin.getline(cnumber,50);
        cout<<"enter your marks\n";
        cin.getline(marks,50);
        cout<<endl;
        //--------------------------------//////////////////////////////////////////////--------------------------
        ofstream x("LOTR.txt");
        x<<name<<endl;
        x<<reg<<endl;
        x<<address<<endl;
        x<<nationality<<endl;
        x<<cnumber<<endl;
        x<<marks<<endl;
        x.close();
        char name2[50];
        char reg2[10];
        char address2[100];
        char nationality2[50];
        char cnumber2[50];
        char marks2[50];
        ifstream y("LOTR.txt");
        y.getline(name2,50);
        y.getline(reg2,50);
        y.getline(address2,100);
        y.getline(nationality2,50);
        y.getline(cnumber2,50);
        y.getline(marks2,50);
        cout<<"name is: "<<name2<<endl;
        cout<<endl;
        cout<<"registration number is: "<<reg2<<endl;
        cout<<endl;
        cout<<"Address is: "<<address2<<endl;
        cout<<endl;
        cout<<"Nationality is: "<<nationality2<<endl;
        cout<<endl;
        cout<<"Contact number is: "<<cnumber2<<endl;
        cout<<endl;
        cout<<"Marks are: "<<marks2<<endl;      
    }
    return 0;
}

您每次循环迭代打开和关闭LOTR.txt文件两次,一次用于 output,然后用于输入。 每次打开 output 的文件时,都会覆盖现有文件。 这就是为什么当循环结束时文件中只存在最后一个数据条目的原因。

将文件打开/关闭逻辑移到循环之外,或者在打开 output 文件时启用appate标志以保留其现有内容。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM