目标是从名为" words.txt"的文件中读取一组字符串。并将每个单词保存到数组字符串中。但是,我无法保存并将文字打印到控制台。我认为问题出在我的GetStrings函数中,但我无法弄清楚原因。调用PrintStrings函数时,没有任何内容打印到控制台。这让我觉得没有任何东西被保存到数组中或打印功能不正确。
int main ()
{
int count = 0;
string strings [MAXSTRINGS];
GetStrings(strings);
// cout << strings[1];
PrintStrings(strings, count);
return 0;
}
int GetStrings (string S [])
{
ifstream input ("words.txt");
int count = 0;
while (input >> S[count])
{
count++;
}
input.close ();
return 0;
}
void PrintStrings (string S [], int C)
{
int w = 0;
while (w < C)
{
cout << S[w] << endl;
w++;
}
}
答案 0 :(得分:0)
问题是局部变量。函数内部声明的变量不能被其他函数使用:
request.setAttribute("customerName", pageContext.getAttribute("customerName"));
在这里使用它:
int GetStrings (string S [])
{
ifstream input ("words.txt");
/* --> */ int count = 0;
函数PrintStrings(strings, count);
中的变量count
是与GetStrings
中的变量不同的变量。
如果希望函数修改外部(函数)变量,请通过引用传递它:
main
我建议将数组换成 int GetStrings (string S [], int& count)
。 std::vector
会保留其计数,您可以使用std::vector
来访问它。