Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;仅使用某些库将字符串拆分为数组_C++ - Fatal编程技术网

C++ C++;仅使用某些库将字符串拆分为数组

C++ C++;仅使用某些库将字符串拆分为数组,c++,C++,我一直在到处寻找解决办法,但运气不好 我已经能够在每一行读取一个文本文件。例如: 1,001,-1999,Jun,12 2,001,-1999,Dec,05 3,001,-1999,Jun,01 请注意,这个文本文件大约有12000行左右,因此这是一个非常小的示例。现在我尝试将逗号之间的每个字符串存储到一个数组中。我只允许在库中使用iomanip、iostream和string。所以不,我不能使用sstream,vector,fstream,或者类似的东西,所以请不要建议 下面我编写了一些代码

我一直在到处寻找解决办法,但运气不好

我已经能够在每一行读取一个文本文件。例如:

1,001,-1999,Jun,12
2,001,-1999,Dec,05
3,001,-1999,Jun,01
请注意,这个文本文件大约有12000行左右,因此这是一个非常小的示例。现在我尝试将逗号之间的每个字符串存储到一个数组中。我只允许在库中使用iomanip、iostream和string。所以不,我不能使用sstream,vector,fstream,或者类似的东西,所以请不要建议

下面我编写了一些代码,作为对示例字符串的快速测试

#include <iostream>
#include <string>
#include <iomanip>
using namespace std;

int main() {
    string tmp = "1,Mar,1998";
    string delimiter = ",";
    size_t pos = 0;
    string token;

        while ((pos = tmp.find(delimiter)) != string::npos) {
            token = tmp.substr(0, pos);
            cout << token << endl;
            tmp.erase(0, pos + delimiter.length());
        }
        cout << tmp << endl;

}

然后如何将它们存储到数组中?每个元素是作为一个单独的字符串计算,还是都是相同的字符串,只是加了一行新行?

这不是对我评论的回答。关于您的输入是1998年3月1日,我可以看到3个令牌-
1
Mar
1998
。令牌的数量始终是3(或任何其他数字)或者输入文件中的不同行具有不同数量的标记?@Fureeish因为可以使用字符串,所以坚持使用它是有意义的。没有必要让它变得更复杂。或者,如果可能的话,创建一个结构来表示记录,如果允许的话,使用命名字段。无论哪种方式,都有许多设计选择要做,并且DanMasek我不愿意为张贴此类问题的任何人提供任何原始代码,但我更愿意帮助那些即使有家庭作业类问题的人,只要他们保持qua,我也愿意帮助他们这里是预期的。一旦OP澄清了预期的输出是什么,指导他/她就会容易得多。没有人认为您要求原始代码。我们只是说,不清楚预期的输出是什么,如果您的问题主要是关于将输出打包成某种结构,而不是关于拆分inpu具体来说,我为误解道歉。我强烈建议您使用用户定义的
(或
结构
)包含表示单个字符串所需的任意数量的
std::string
sline@DanMašek再次查看文本文件,我认为我无法硬编码输入的数量。正在为其制作一个类,虽然这不是我评论的答案。关于您的输入是
“1,3月,1998年
我可以看到3个令牌-
1
Mar
1998
。令牌数是否始终为3(或任何其他数字),或者输入文件中的不同行具有不同的令牌数?@Fureeish因为可以使用字符串,所以坚持使用它是有意义的。没有必要让它变得更复杂。或者,如果可能的话,制作一个结构来表示记录,如果允许的话,可以使用命名字段。无论哪种方式,都有许多设计选择要做,这真的感觉像是一个家庭作业问题,所以我不愿意给出任何具体的解决方案,而是引导OP自己去解决这些问题。@DanMasek我不愿意为发布此类问题的任何人提供任何原始代码,然而,我非常愿意帮助一些人,即使是家庭作业类的问题,只要他们保持这里所期望的质量。一旦OP明确了预期的输出是什么,指导他/她就会容易得多。没有人认为你要求的是原始代码。我们只是说不清楚期望的输出是什么,如果您的问题主要是关于将输出打包成某种结构,而不是具体地分割输入,我为误解道歉。我强烈建议您使用用户定义的
(或
结构
),其中包含表示单个line@DanMašek再次查看文本文件,我认为我无法硬编码输入的数量。不过,正在为它制作一个课程
1
Mar
1998