首页 > 解决方案 > C ++:将一行读为:'string string;int'

问题描述

我最近开始编码(学校课程)并遇到了一个小问题。我想读取一个 .txt 文件,这些行就像“名字姓氏;电话号码”。

ifstream file("names.txt");

    string line, fname, lname;
    int num;

    while (getline(file, line)) {
        istringstream iss(line);
        iss >> fname >> lname >> num;
    }

所以问题是姓氏是姓氏+“;” + 电话号码,我不知道如何将它们分开。任何帮助表示赞赏:)

编辑:感谢您的快速回复!

标签: c++ifstreamsstream

解决方案


两种可能的解决方案:

  1. 一种相对简单的方法是fname像现在一样阅读,然后使用std::getlinewith';'作为分隔符(而不是默认的换行符)来获取lname. 然后你可以读入num.

  2. fname现在这样。然后lname;num进入第二个字符串。找到分号并创建两个子字符串,一个 for lname,一个 for num。然后包含的字符串num转换为整数(在我对 OP 的评论中提到了警告)。


推荐阅读