我想从文本文件中读取一行,将该行存储在字符串数组中,以便以后显示可以在其上找到一个单词的行号,还可以将该行分解为多个单词以标记出唯一的次数话来了。我已经能够成功地逐行分解行并标记行出现的频率,但是我正努力将行存储在字符串数组中,以便以后使用。
void get_word(istream& in_stream, string& w,
list<string> &wordlist, int& lineCount, string *line)
{
string t;
getline(in_stream,t);
for (int j=0; t[j]; j++)
t[j] = tolower(t[j]);
line = &t;
istringstream iss(t);
string word;
while(iss >> word)
{
insert_word(word, wordlist);
}
}
到目前为止,这是我所拥有的,无论我尝试对要向其指向的“行”数组分配字符串“ t”的行如何处理,都不会在数组中放置任何内容,我想我完全错过了一些东西。 行初始化为:
string line[0];
答案 0 :(得分:0)
首先,string line[0]
为您提供了没有字符串的数组。那不可能是您想要的。为什么不简单地string line
?那是一个字符串。您可以使用&line
将指向该字符串的指针传递给函数。
第二,line = &t
将输入指针替换为指向局部变量的指针。功能结束后,该信息将丢失。如果您写*line = t
,则将“ line
指向的字符串”设置为“字符串t
的值。
理想情况下,您会避免使用“ out参数”,而只是返回所需的字符串。