如何将.txt文件中的单词复制到数组中。然后在单独的行上打印每个单词

时间:2015-09-19 16:53:19

标签: c++ arrays string console

目标是从名为" 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++;
    }
}

1 个答案:

答案 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来访问它。