0

我精通 C++ 编程,需要你的帮助。
需要将每个句子分配给变量 sentence[i]
并不是所有的字母都被分配。为什么?

代码错误:

int k = 0;
char t[256];
string sentence[1024], s;
while(!in_file.eof())
{
    in_file.getline(str, num);

    for(int i = 0; i < strlen(str); i++)
    {
        if(str[i] != '.')
        {
            sentence[k] += str[i];
            i++;
        }
        else
        {
            sentence[k] += str[i];
            k++;
            i++;
        }
    };

}
    for(int i = 0; i < k; i++)
        cout << "Sentence" << i+1 << ": " << sentence[i] << endl;

结果:

My text from file:
У лукоморья дуб зеленый,
Золотая цепь на дубе том.
И днем, и ночью кот ученый
Все ходит по цепи кругом.

Sentence 1: Улкмрядбзлнй Злтяцп адб о.  // why?
Sentence 2: Иде,инчюктуеы Вехдтп еикуо. // why?
4

1 回答 1

0

我会这样做。

while( k < 1024 && in_file.getline( sentence[k],'.' ) )
{
    sentence[k] += '.';
    k++;

}
    for(int i = 0; i < k; i++)
        cout << "Sentence" << i+1 << ": " << sentence[i] << endl;

它在这里运行良好http://ideone.com/lMnnW2(使用 std::cin 而不是 in_file)

于 2013-11-02T11:07:59.130 回答