我想知道是否有人知道如何从一个文件(.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地址,名称和登录时间;从内部网络中排除任何内容。我确信我所采用的做法并不尽如人意,但感谢您花时间去研究它。
答案 0 :(得分:6)
为每个文件创建单独的ofstream
:
ofstream osIpAddress;
ofstream osName;
ofstream osDate;
然后相应地处理它们。