gpt4 book ai didi

c++ - 从单行文件中有效地读取标记

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:50:23 25 4
gpt4 key购买 nike

我正在解析一个文本文件,一次读取一行。对于每一行,我需要检查前 n 个字母是否与特定单词匹配,然后处理该行。

目前是这样做的:

while (!inFile.eof()) 
{
std::string line;
std::getline(inFile, line);
if (compareCaseInsensitive(line, "facet", 5))
{
std::stringstream lineStream(line);
float a,b,c;
std::string filler;
lineStream >> filler >> filler >> a >> b >> c;
}
}

我正在将字符读入字符串,然后将这些字符复制到字符串流中,然后将这些字符读出到特定变量中。这看起来效率很低。有没有办法直接读入字符串流?或者从字符串中提取标记以防止不必要的复制?

最佳答案

sscanf可能是您正在寻找的:

char filler[64];
float a,b,c;
sscanf(line.c_str(), "%s %s %f %f %f", filler, filler, &a, &b, &c);

但是您必须修复格式字符串以处理您实际使用的任何分隔符,为了具体起见,我只是在这里猜测(空格)。 C format specifiers给你很多(虽然不是无限的)余地来解释输入字符串格式的不确定性。

关于c++ - 从单行文件中有效地读取标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16863734/

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