从包含特定字符串的行开始读取

发布于 2025-01-07 01:59:46 字数 289 浏览 0 评论 0原文

我正在尝试从输入文件中读取一些 xyz 坐标。 这是我的输入文件:

input.inp

POSITIONS
1.5    2.5    1.5    C
3.2    1.5    4.5    C
1.4    4.2    3.2    C

我想编写一个函数,在输入文件中搜索包含 " C" 的字符串,然后开始从该行读取坐标。我如何在 C++ 中做到这一点? (我不想搜索单词 POSITIONS,因为输入文件的该部分稍后可能会更改)。

I'm trying to read some xyz coordinates from an input file.
This is the input file I have:

input.inp

POSITIONS
1.5    2.5    1.5    C
3.2    1.5    4.5    C
1.4    4.2    3.2    C

I want to write a function that searches the input file for the string containing " C" and then starting reading the coordinates from that line. How do I do this in c++? (I don't want to search for the the word POSITIONS, as that part of the input file may change later).

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

夜夜流光相皎洁 2025-01-14 01:59:47

您应该将所有行读取到 string 变量。分析它,如果你想读取这个数字,你可以使用 stringstream()

string a = "";
in >> a;

//检查该行末尾是否有 C 或其他测试,然后

stringstream b(a, stringstream::in);

double c1=0, c2=0, c3=0;
b >> c1 >> c2 >> c3;

将从该行读取数字。

You should read all the line to string variable. Analyse it and if you want to read this numbers you may use stringstream(<sstream>)

string a = "";
in >> a;

//Check whether the line has C at the end or other tests and then

stringstream b(a, stringstream::in);

double c1=0, c2=0, c3=0;
b >> c1 >> c2 >> c3;

Will read the numbers from that line.

怪我入戏太深 2025-01-14 01:59:46
ifstream file("in");
string line;
while (getline(file, line)) { 
    if (line.find(" C") == string::npos)
        continue;
    istringstream ss(line);
    double x, y, z;
    ss >> x >> y >> z;
    if (!ss)
        continue; // error
    // ok
}
ifstream file("in");
string line;
while (getline(file, line)) { 
    if (line.find(" C") == string::npos)
        continue;
    istringstream ss(line);
    double x, y, z;
    ss >> x >> y >> z;
    if (!ss)
        continue; // error
    // ok
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文