C/C++ Y/N 重複輸入功能實現

gaopengtttt發表於2016-05-06
Y/N :最好使用char陣列進行實現  ,不要用cin.get() getchar()或者scanf一切關於字元的函式實現
C++使用cin.getline() 不包含換行符
C使用fgets() 包含換行符

  1 /*************************************************************************
  2     > File Name: YN.cpp
  3     > Author: gaopeng
  4     > Mail: gaopp_200217@163.com 
  5     > Created Time: Thu 05 May 2016 01:58:08 PM CST
  6  ************************************************************************/
  7 
  8 #include<iostream>
  9 #include<string.h>
 10 using namespace std;
 11 
 12 int main(void)
 13 {
 14     char ch[20];
 15     //cin >> ch;
 16     cin.getline(ch,20);
 17     int cot=0;
 18 //  cout<< strlen(ch) << endl;
 19     while (1)
 20     {
 21     cot++;
 22 //  cout<< strlen(ch) << endl;
 23     if (!strcmp(ch,"Y") || !strcmp(ch,"y" ) )
 24     {
 25         cout<<"true"<<endl;
 26         break;
 27     }
 28     else if(!strcmp(ch,"N") || !strcmp(ch,"n" ))
 29     {
 30         cout<<"flase"<<endl;
 31         break;
 32     }
 33     else if(cot >10)
 34     {
 35         cout<<"max is rech"<<endl;
 36         break;
 37     }
 38     else
 39     {
 40         cout<<"unkown"<<endl;
 41         cin.getline(ch,20);
 42         continue;
 43     }
 44     }
 45     return 0;
 46 }    
<endl;
<endl;
<endl;
<endl;
<endl;
<endl;

C:
  8 #include
  9 #include
 10 
 11 int main(void)
 12 {
 13     char ch[20];
 14     fgets(ch,20,stdin);
 15     ch[strlen(ch)-1]='\0';
 16     printf("%ld\n",strlen(ch));
 17     while (1)
 18     {
 19     if (!strcmp(ch,"Y") || !strcmp(ch,"y" ) )
 20     {
 21         printf("%s\n","true");
 22         break;
 23     }
 24     else if(!strcmp(ch,"N") || !strcmp(ch,"n" ))
 25     {
 26         printf("%s\n","flase");
 27         break;
 28 
 29     }
 30     else
 31     {
 32         printf("%s\n","unkown");
 33         fgets(ch,20,stdin);
 34         ch[strlen(ch)-1]='\0';
 35         continue;
 36     }
 37     }
 38     return 0;
 39 }
~                  
                      


</endl;
</endl;
</endl;
</endl;
</endl;
</endl;

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7728585/viewspace-2095031/,如需轉載,請註明出處,否則將追究法律責任。

相關文章