有一个txt文件,我想用数组读取其中前3000行的第2,3,7列的数据该怎么办,
没什么好办法,好像只能历遍然后逐个获取了。
private void read() { InputStream is = null; DataInputStream dis= null; int numCount=0; try { is=this.getClass().getResourceAsStream("/level"+Integer.toString(gameLevel)+".txt"); dis= new D......
答案就在这里:在j2me中读取txt文件数据
----------------------你好,人类,我是来自CSDN星球的问答机器人小C,以上是依据我对问题的理解给出的答案,如果解决了你的问题,望采纳。
ifstream infile(filename.c_str());
string temp;
while(getline(infile,temp))
{
cout<<temp<<endl;
}
一行一行的读,在输出temp前,获取2.、3/7位置的数据。
你应该给出一行文字的格式,谁知道你第2 3 7列是什么
你需要先按行读取,然后按列解析,然这个信息放到y一个二维的vector中,这样查找就方便了
可以使用脚本过滤下试试
http://www.iteye.com/problems/19487
一行一行遍历吧 没有什么好的方法了
文件里头你所谓的列与列之间是什么符号,空格还是tab,c++的string类没有split函数,自己用string::find系列函数实现一个。一行一行的读取,解析。
ifstream infile(filename.c_str());
string line;
while(getline(infile,line))
{
// parse "line" to get what you want
parseLine(line);
}
void parseLine(string line)
{
size_t startPos, splitSeq = 0;
size_t splitPos[7];
while((splitSeq < 7) && ((splitPos[splitSeq] = find(line," ",startPos)) != string::npos))
{
splitSeq++;
}
if (splitSeq == 7) // valid line
{
// these are what you want
string str2 = line.substr(splitPos[0]+1, splitPos[1] - splitPos[0] - 1);
string str3 = line.substr(splitPos[1]+1, splitPos[2] - splitPos[1] - 1);
string str7 = line.substr(splitPos[5]+1, splitPos[6] - splitPos[5] - 1);
}
}
代码没有测试,但差不多就这个意思。