当前位置:编程学习 > C/C++ >>

C++编译密码问题?

...
#include <stdlib.h>
...
int bymm();
...
void main()
{
 zhucaid();

void zhucaid(void)
{
 cout<<"************************"<<endl;
 
 cout<<"5--译文编译密码"<<endl;

 cout<<"************************"<<endl;
 cout<<"请输入您的选着:"<<endl;
int chch;
 char ch;
 for(;;)
 {
 cin>>chch;
 if(chch==0)break;
 switch(chch)
 {
 case 5:system("cls");//清屏
     for(;;)
     {
      bymm();
        cout<<endl<<"是否继续?(继续'n'返回'y')";
        cin>>ch;
        if(ch=='y')
     {
      system("cls");
     zhucaid();
     }
        if(ch=='n')
     {
      system("cls");
        continue;
        }
     }
  break;
}

int bymm()
{
 char c;
 
    while((c=getchar())!='\n')
   
    {
     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;
    }
    cout<<endl;
    return 0;
}

//为什么在switch 里 调用   bymm();函数。。不起作用???


 

追问:等等。。。可以加上注释吗??谢谢了

答案:会调用的。主要是您没有清空输入缓冲区。我帮您修改了下。您看看。
#include <stdlib.h>
#include<iostream>
using namespace std;


int bymm();
int zhucaid(void);
int main()
{
 zhucaid();

int zhucaid(void)
{
 cout<<"************************"<<endl;
 
 cout<<"5--译文编译密码"<<endl;
 cout<<"************************"<<endl;
 cout<<"请输入您的选着:"<<endl;
int chch;
 char ch;
 for(;;)
 {
 cin>>chch;
 if(chch==0)break;
 switch(chch)
 {
 case 5:system("cls");//清屏
     for(;;)
     {
      bymm();
        cout<<endl<<"是否继续?(继续'n'返回'y')";
        cin>>ch;
        if(ch=='y')
     {
      system("cls");
     zhucaid();
     }
        if(ch=='n')
     { 
      system("cls");
        continue;
        }
     }
  break;
}
}
return 0;
}
int bymm()
{
 char c;
 fflush(stdin);    while((c=getchar())!='\n')
    {
     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;
    }
    cout<<endl;
    return 0;
}


。。。有什么不懂的可以问我。

上一个:C和C++区别
下一个:帮忙看段C++代码

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,