为什么我的代码会继续打印"i"而不是完整的句子?

Idr*_*EK9 3 c++

我的工作是编写一个程序,将句子转换为大写和小写.

#include <iostream>
using namespace std;


int main ()
{
int current;
string sent;
cout << "Please enter a sentence: ";
cin >> sent;
for (int i = 0; i < sent.length(); i++)
{
    current = (int) sent[i];
    cout << "Your sentence in all lower case: "<< sent;
    cout << endl;
    if (current >= 65 && current <= 90)
    {
        current += 32;
        sent[i] = (char) current;
        cout << "Your sentence in all upper case: " << sent;
    }
    }

return 0;

}
Run Code Online (Sandbox Code Playgroud)

输出应该是:

请输入一句话:我吃苹果!

所有小写​​的句子:我吃苹果!

所有大写的句子:我吃了!

但是我继续为小写字母获得小写"i"而大写字母我得到一个大写字母我,为什么我的代码不会打印出完整的句子?我不知道我做错了什么或做错了什么.

Som*_*ude 5

输入操作符>>在空白区域(空格,换行符,制表符等)上分隔.如果你想阅读整行使用std::getline:

cout << "Please enter a sentence: ";
getline(cin, sent);
Run Code Online (Sandbox Code Playgroud)

在不相关的说明中,请不要使用像或的魔术数字.如果你的意思是字符然后使用像或的实际字符文字(请注意,例如,在所有编码中无效,它在ASCII中工作,这是最常见的编码,但它实际上不可移植).这也是假设这是一个学校作业,否则你应该使用eg 和一些合适的标准算法函数.6532'A''a' - 'A''a' - 'A'std::toupper