gpt4 book ai didi

c++ - 使用 fstream 从 txt 文件中获取行

转载 作者:行者123 更新时间:2023-11-28 07:18:40 24 4
gpt4 key购买 nike

int main(int argc, const char * argv[])
{
ifstream input;
input.open("test.txt");
string arrAtoms[700];
string temp;
int i = 0;
while(getline(input, temp)){
if(startsWithAtom(temp)) {
arrAtoms[i] = temp;
i++;
}
}
return 0;
}

bool startsWithAtom(string test) {
string atom = "ATOM";
if(test.find(atom) == 0) {
return true;
}
return false;
}

所以这是我的代码,用于读取以“ATOM”开头的行并将其存储在 arrAtoms[] 中。出于某种原因,我不断收到错误 Thread1: EXC_BAD_ACCESS(code=EXC_1386_GPFLT)我不知道为什么。请帮忙!

最佳答案

代码在我的机器上运行得很好。也许问题在于该文件的 ATOM 条目多于 700?并且您的字符串数组只能包含 700 个。如果您不知道将有多少个条目,请尝试使用 vector

这是我测试代码的文件:

soadiaodiaodsa
sdaiod sadoiasoda
ATOM alodaskd
ATOM alosad
ATOM lol
saodai aosdisoad daiosiadsa
ATOM ATOM ATOM
ATOM LOL test
lololololol

我还尝试输出数组中的前 15 个条目,它工作正常并且只包含以 ATOM 开头的行:

for(unsigned int i=0;i<15;i++)
cout << arrAtoms[i] << endl;

关于c++ - 使用 fstream 从 txt 文件中获取行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19866658/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com