我发现试图帮助我的唯一问题就是这个C++: splitting a string into an array。 我是c ++的新手,我需要一个字符串数组,这些字符串包含了我在这个字符中的每个单词。
以下是代码:
s3eFile* file = s3eFileOpen("chatTest/restrict_words.txt","rb");
int len = s3eFileGetSize(file);
char* temp = new char[len];
if (file!=NULL)
{
s3eFileRead(temp,len,1, file);
s3eFileClose(file);
}
所以我需要让这个临时变成一个数组,这样我才能使用它? 有办法吗?
答案 0 :(得分:3)
可能是这样的:
ifstream f("chatTest/restrict_words.txt");
vector<string> vec;
while (!f.fail())
{
string word;
f >> word;
vec.push_back(move(word));
}
答案 1 :(得分:2)
如果这是一个c ++代码,那么我建议转移到std :: string而不是char *并使用强大的std工具,如fstream,stringstream等。您指定的链接提供了有关如何操作的详细答案
#include <string>
#include <sstream>
using namespace std;
.
.
.
s3eFile* file = s3eFileOpen("chatTest/restrict_words.txt","rb");
int len = s3eFileGetSize(file);
char* temp = new char[len];
if (file!=NULL)
{
s3eFileRead(temp,len,1, file);
//Adding Code here
string str(temp);
stringstream sstr(str)
vector<string> str_array;
string extracted;
while(sstr.good()){
sstr>>extracted;
str_array.push_back(extracted);
}
//at this point all the strings are in the array str_array
s3eFileClose(file);
}
您可以使用迭代器或像数组str_array[i]