Cry for help!(求助!)

P1914 小书童——凯撒密码

异空龙 @ 2019-07-05 21:52:36

为什么我的程序无法输入字符串?求各位帮帮忙指点一下

#include<iostream>
#include<cstring>
using namespace std;
int main()
{
    int n=0;
    char a[50]={0},m[50]={0};
    cin>>n;
    gets(a);
    for(int i=0;i<50;i++)
    {
        if(a[i]+n>91)
        {
            m[i]=a[i]+n-25;
        }
        else
        {
            m[i]=a[i]+n;
        }
    }
    for(int c=0;c<50;c++)
    {
        cout<<m[c];
    }
    return 0;
} 

by t162 @ 2019-07-05 22:01:43

请不要试图使用gets。


by yu__xuan @ 2019-07-05 22:01:44

cin


by 饼干君 @ 2019-07-05 22:04:53

getline也可以


by HeartBlock_Love @ 2019-07-05 23:22:40

@异空龙 可以压一下行吗?用cin


by 1saunoya @ 2019-07-06 01:53:39

看着有点变扭是真的


by 异空龙 @ 2019-07-06 12:09:53

谢谢,我试一下


by kub_inst @ 2019-07-25 09:13:01

getchar缓冲一下


by 异空龙 @ 2019-08-16 19:59:06

谢谢各位,我做出来了。

#include<iostream>
#include<cstring>
using namespace std;
int main()
{
    int n=0;
    char a[50]={0},m[50]={0};
    cin>>n;
    cin>>a;
    for(int i=0;i<50;i++)
    {
        if(a[i]+n>90&&a[i]<=90&&a[i]>=65)
        {
            m[i]=a[i]+n-26;
        }
        else if(a[i]+n<=90&&a[i]<=90&&a[i]>=65)
        {
            m[i]=a[i]+n;
        }
        else if(a[i]+n>122&&a[i]<=122&&a[i]>=97)
        {
            m[i]=a[i]+n-26;
        }
        else if(a[i]+n<=122&&a[i]<=122&&a[i]>=97)
        {
            m[i]=a[i]+n;
        }
    }
    for(int c=0;c<50;c++)
    {
        cout<<m[c];
    }
    return 0;
}

|