首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有效地从文件的各个行读取标记

有效地从文件的各个行读取标记
EN

Stack Overflow用户
提问于 2013-06-01 02:39:04
回答 1查看 847关注 0票数 2

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

目前是这样做的:

代码语言:javascript
复制
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;  
    }
}

我将字符读入字符串中,然后将这些字符复制到字符串流中,然后将这些字符读出到特定的变量中。这似乎非常低效。有没有什么办法可以直接读入字符串流?或者从字符串中提取标记以防止不必要的复制?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-01 02:44:43

sscanf可能就是你要找的东西:

代码语言:javascript
复制
char filler[64];
float a,b,c;
sscanf(line.c_str(), "%s %s %f %f %f", filler, filler, &a, &b, &c);

但是,您必须修复格式字符串以处理您实际使用的分隔符,为了具体起见,我在这里只是猜测(空格)。C format specifiers为您提供了很大的回旋余地(尽管不是无界的),可以考虑到输入字符串格式的不确定性。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16863734

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档