首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

如何按行随机抽取文本文件中记录,并放进新的文本文件中

2012-02-21 
怎么按行随机抽取文本文件中记录,并放进新的文本文件中!怎么按行随机读取文本文件中记录,并输入到新的文本

怎么按行随机抽取文本文件中记录,并放进新的文本文件中!
怎么按行随机读取文本文件中记录,并输入到新的文本文件中!最好有具体代码!

[解决办法]
先按行读入vector <string> ,然后就想干嘛干嘛了。
[解决办法]
1、你会不会有随机数?rand()这个函数会用吗?不会用的话查msdn
2、会不会文件的读写?不会的话自己找找资料就行了,做人不要太懒。。。

思路是先获取随机数,在文件中找到随机数所在在行(注意随机数的大小要转换成小于行数)
之后一行一行的读,读到之后就一行一行的写
至于文件的读写,google或者baidu一下大把
[解决办法]
#include <vector>
#include <ctime>
#include <fstream>
#include <string>
#include <iostream>
#include <cstdlib>

using namespace std;

int main()
{
ifstream ifile( "test.txt ");
ofstream ofile( "out.txt ");

string line;
vector <string> str;
int index;

while(!ifile.eof())
{
getline(ifile, line); //将记录以 string line 的形式缓存
str.push_back(line); //读取文件内容到 vector 中缓存
}

srand(time(NULL));
int i=3; //假设随机读取3条记录
while(i--> 0)
{
index = rand()%str.size(); //生成随机数, 取模得到小标
cout < <index < < ": " < <str[index-1] < <endl;
ofile < <str[index-1] < <endl; //写入文件
}
ifile.close();
ofile.close();
system( "pause ");
return 0;
}

热点排行