我对使用文件输入/输出有点陌生,所以请容忍我。
我有一个名为RunList(filename)
的函数,它将文件名作为输入,而不返回任何内容。该文件的格式将是有一行无用的,我计划使用忽略() on,然后下一行重要的是格式
"i 1 2 3 4 5.“
这些数字持续了很长一段时间,大约有250000人左右。
所以我想要做的是打开这个文件,忽略第一行,然后对文件中的每个数字使用函数void insert(x, p)
,这个函数是我定义的函数,用于在当前迭代器位置p之后插入x。最终的结果是,我想让我的列表包含文件中"i“之后的所有数字,并按相同的顺序排列。我还定义了函数ListItr find(x)
和ListItr first()
,它们分别将迭代器返回到视图x和第一个药剂的位置。
有人能给我提供这样做的方法吗?我正在考虑使用for()循环,每次从文件中获取每个单词,并使用我的函数插入每个元素,但我对如何做到这一点有点不知所措,因为我说过我对使用文件输入/输出非常陌生。
因此,我的RunList函数目前看起来是这样的,尽管它显然没有完成,也没有真正工作,因此我需要一些帮助。
void Runlist(filename){
ifstream in;
in.open(filename);
in.ignore(1000, '\n'); //this is me trying to ignore the first line
for (int i, i < 250000, i++){
int number;
in >> number
void insert(number, i)
}
}
但是计划是,我选择文件,忽略第一行,然后设置一个for循环,在这里我可以使用我的void ( number,i)来插入每个数字,但是我不知道如何一次读每个单词,或者保持顺序,因为如果我只是一遍又一遍地对每个数字使用这个函数,列表中的数字就会以我相信的相反顺序排列。
发布于 2014-04-09 00:31:13
代码中有几个问题:
这段伪代码将帮助您了解输入文件流类及其在C++中的用法:
void Runlist(filename)
{
ifstream in(filename, ifstream::in);
in.getline(0, 1024);
int number;
while (in >> number)
append(number);
in.close();
}
免责声明:这个伪代码缺少正确的错误检查,等等。
https://stackoverflow.com/questions/22950496
复制相似问题