一个输入到多个输出文件C ++

时间:2014-01-28 00:33:32

标签: c++

我想知道是否有人知道如何从一个文件(.txt)获取输入并将其输出到多个输出文件(.txt)。例如,如果它读取3个整数值,它会将第一个值输出到第一个输出文件,依此类推。我很好奇,看看我是否可以通过不必三次运行输出功能来节省一些时间。

如果有人有兴趣进一步了解我的意思,这就是我放在一起的代码。

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

int main()
{
ifstream instream;
ofstream outstream;
int ip;
string ipadd;
string name;
string date;
char test1;

instream.open("inputfile.txt");
outstream.open("ipaddress.csv");
outstream.open("name.csv");
outstream.open("date.csv");



if(instream.fail())
    cout<<"Incorrect File Name\n";


while(!instream.eof())
    {
                 instream>>ip;
                 if(ip==192)
                 {
                       instream.ignore(10000,'\n');
                 }
                 else
                 {
                 instream>>ipadd;
                 instream.ignore(3, ' - ');
                 instream>>name;
                 instream.ignore(2, '[');
                 instream>>date;
                 cout<<ip<<ipadd<<"   "<<name<<" "<<date<<endl;
                 outstream<<ipadd<<"  "<<name<<" "<<date<<endl;
                 instream.ignore(256,'\n');
                 }
    }

instream.close();
outstream.close();

        return 0;
}

希望输出值ip&amp;将ipadd放入一个输出文件中,将值存储在第二个名称中,并将日期存入第三个。对于那些好奇的人,程序会对Apache日志进行排序并输出用户的IP地址,名称和登录时间;从内部网络中排除任何内容。我确信我所采用的做法并不尽如人意,但感谢您花时间去研究它。

1 个答案:

答案 0 :(得分:6)

为每个文件创建单独的ofstream

ofstream osIpAddress;
ofstream osName;
ofstream osDate;

然后相应地处理它们。

相关问题