请教很弱C++的问题

时间:2022-02-02 04:32:35
//程序就是字母往后加4位加密
#include <iostream>
using namespace std;
int main ()
{
    char c;
    
    cin>>c;
   
    if(c!='n')//这里如果改为while(c!='n')就一直循环了。改成while((c=getchar())!='n'),去掉cin>>c;就可以了,这是为什么呢?
   {
    if ((c>='a'&&c<'z')||(c>='A'&&c<='Z'))
    {
                                       c=c+4;
                                       if (c>'Z'&&c<='Z'+4||c>'z')
                                       {c=c-26;}
                                       
                                       
                                       
                              
                              
                              cout<<c;                              
                              
                              
      }
                              
    }                         
                            
                             
                              return 0;
    
    
    
    
    
    
  }







6 个解决方案

#1


while((c=getchar())!='n')
每次输入更新c里面存放的值嘛,如果直接while(c!='\n')那么你第一次输入的如果不是回车,就是死循环;
基础问题啊...

#2


需要在while里再次读入c
while(c != 'n')
{
    cin >> c;
}

而不是cout << c;

#3


while((c=getchar())!='n')//z这句话可以分两部理解:

首先将读取的输入赋给已经定义的c(也就是说此时你必须是已经输入了),然后比较c!='n'(如果你输入了n,结束循环)

“if(c!='n')//这里如果改为while(c!='n')就一直循环了。改成while((c=getchar())!='n'),去掉cin>>c;就可以了,这是为什么呢?”

——如果你改成while(c!='n')也是可行的,但前提是你必须在cout<<c;的后面加上cin>>c;以保证可循环输入

#4



#include <iostream>

#define pause system("pause")

using std::cin;
using std::cout;
using std::endl;

int main() 

char c;   
while(cin>>c)
{
if(c == 'n')
break;
if ((c>='a'&& c <'z') || (c>='A'&& c<='Z'))   
c=c+4; 
else if (c>'Z'&& c <='Z'+4 || c>'z') 
c=c-26; 
cout<<c<<endl;                               
}       

pause;
return 0; 

搂主是这个意思吧

#5


thanks

#6


好啊~~~~~对头

#1


while((c=getchar())!='n')
每次输入更新c里面存放的值嘛,如果直接while(c!='\n')那么你第一次输入的如果不是回车,就是死循环;
基础问题啊...

#2


需要在while里再次读入c
while(c != 'n')
{
    cin >> c;
}

而不是cout << c;

#3


while((c=getchar())!='n')//z这句话可以分两部理解:

首先将读取的输入赋给已经定义的c(也就是说此时你必须是已经输入了),然后比较c!='n'(如果你输入了n,结束循环)

“if(c!='n')//这里如果改为while(c!='n')就一直循环了。改成while((c=getchar())!='n'),去掉cin>>c;就可以了,这是为什么呢?”

——如果你改成while(c!='n')也是可行的,但前提是你必须在cout<<c;的后面加上cin>>c;以保证可循环输入

#4



#include <iostream>

#define pause system("pause")

using std::cin;
using std::cout;
using std::endl;

int main() 

char c;   
while(cin>>c)
{
if(c == 'n')
break;
if ((c>='a'&& c <'z') || (c>='A'&& c<='Z'))   
c=c+4; 
else if (c>'Z'&& c <='Z'+4 || c>'z') 
c=c-26; 
cout<<c<<endl;                               
}       

pause;
return 0; 

搂主是这个意思吧

#5


thanks

#6


好啊~~~~~对头