C++ 在c+;中读取.txt文件行的一部分+;

C++ 在c+;中读取.txt文件行的一部分+;,c++,C++,我有一个.txt文件,如下所示: Peter He is a boy. Mary She is a girl. Tom It is a cat. ... 我想使用c++读取文件,将名称存储到字符串数组name[]中,并将描述存储到另一个字符串数组description[]中,但不带句号“.” 名称和描述用一个选项卡分隔 我该怎么做?假设您已经知道如何读取文本文件的整行,您可以使用特定的字符(我经常使用“,”来分隔文本) 例如,您可以阅读“Peter He is a bo

我有一个
.txt
文件,如下所示:

Peter   He is a boy.

Mary    She is a girl.

Tom     It is a cat.

...
我想使用
c++
读取文件,将名称存储到字符串数组
name[]
中,并将描述存储到另一个字符串数组
description[]
中,但不带句号“.”

名称和描述用一个选项卡分隔


我该怎么做?

假设您已经知道如何读取文本文件的整行,您可以使用特定的字符(我经常使用“,”来分隔文本)

例如,您可以阅读“Peter He is a boy”中的第一行。但如果您将其设置为分隔字符串,它可能看起来像“Peter,He is a boy.”。然后可以循环遍历字符串的每个字符,直到有问题的特定字符=','然后可以相应地拆分字符串

像这样的东西可能是你想要的:

#include <string>
#include <sstream>
#include <vector>

int main()
{
    vector<string> lines(3);
    vector<string> names(3);
    vector<string> descriptions(3);
    lines.at(0) = "Peter,He is a boy.";
    lines.at(1) = "Mary,She is a girl.";
    lines.at(2) = "Tom,It is a cat.";

    for(int i = 0; i < lines.size(); i++) {
        for(int j = 0; j < lines[i].size(); j++) {
            if(lines[i][j] == ',') {
                for(int d = 0; d < j; d++) {
                    stringstream ss;
                    ss << lines[i][d];
                    ss >> names.at(i);
                }
                for(int d = j + 1; d < lines[i].size(); d++) {
                    if(lines[i][d] != '.') {
                        stringstream ss;
                        ss << lines[i][d];
                        ss >> descriptions.at(i);
                    } else {
                        break;
                    }
                }
                break;
            }
        }
    }
}
#包括
#包括
#包括
int main()
{
矢量线(3);
病媒名称(3);
矢量描述(3);
第(0)行=彼得,他是个男孩;
第(1)句=玛丽,她是个女孩;
台词。at(2)=“汤姆,它是一只猫。”;
对于(int i=0;iname.at(i);
}
对于(int d=j+1;d
#包括
#包括
#包括
int main()
{
矢量线(3);
病媒名称(3);
矢量描述(3);
第(0)行=彼得,他是个男孩;
第(1)句=玛丽,她是个女孩;
台词。at(2)=“汤姆,它是一只猫。”;
对于(int i=0;iname.at(i);
}
对于(int d=j+3;d

  • 捕获C++;VCL异常例程上的异常 我希望用C++ Builder处理所有C++异常,生成一个崩溃报告,当我在客户端安装和使用应用程序时,可以帮助我调试应用程序。

  • C++ 使用命令行参数创建结构向量

  • C++ 向下浇铸ID3D11D纹理2D

  • C++ 如何在不存储连接的情况下断开lambda函数

  • C++ 为std::vector创建getter函数<;结构>;

  • C++ 如何在树结构中从子级移动到父级?

  • C++ lambda可以转换成函数吗?

  • C++ 为什么要使用mem_fn?

  • C++ 当重新分配到一个尚未准备好的未来时会发生什么

  • C++ Linux,C++;,第三方自由裁量权

  • C++ 如何检测类型是否为std::tuple?

  • 数组类,该类将接受带括号的init列表并推断长度 以前已经问过,但我很好奇,看看新的C++标准是否有什么改变。任何当前或未来的标准都是可以接受的

  • C++ 为什么VisualStudioC++;编译器是否拒绝将枚举作为模板参数?

  • C++ 如何为vector创建副本构造函数?

  • C++ 错误LNK2001:C+中未解析的外部符号+;带节点Gyp >(类std:: 基本流和类Json::Value&“(??5 Json@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@std@@AEAV12@AEAVValue@0@@Z)