【发布时间】:2018-12-06 10:31:34
【问题描述】:
我想从文本文件中读取一行,将该行存储在一个字符串数组中,以便稍后显示可以找到单词的行号,并将该行分解为单词以标记多少次唯一话出来了。我已经成功地逐字分解了这些行并标记了它们出现的频率,但是我正在努力将这些行存储在一个字符串数组中,以便以后可以使用它。
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”分配给指向它的“line”数组的行做什么,都不会在数组中放入任何内容,我想我只是完全错过了一些东西。 行被初始化为:
string line[0];
【问题讨论】:
-
你有一个 zero
strings 的数组? -
line = &t;为什么?你传递一个指针然后忘记它。这个论点有什么意义?也许您想改为return t? -
可能是
*line = t@Matthieu。有些人出于某种原因喜欢“出论”! -
1.零大小的数组对任何事情都没有好处。 2. 给参数赋值对函数外没有影响。
-
另外,
t是一个局部变量,你无法获取指向它的指针并重用它(即使你将 line 作为引用传递)。