字符串转换大小写输入出现跳过字符现象

在输入字符串转换大小写的时候输入总是会跳过字符

#include <iostream>
using namespace std;
#include<cmath>
#include<iomanip>
int main()
{
    char n;
    char a[50];
    int i=0;
    while(cin>>n){
        if(n>='A'&&n<='Z'){
            n=n+32;
        }
        if(n>='a'&&n<='z'){
            n=n-32;
        }
        a[i]=n;
        cout<<a[i];
        i++;
        if(cin.get()=='\n'){
            break;
        }
        }    
    
    return 0;
}

1.你的数组a没有用,不需要存,直接输出n即可
2.if要加else,否则你前面刚+32,后面马上又-32
3.cin.get()删掉,直接判断n=='\n'