C++ cin.get(s,100)与cin.getline(s,100)有关问题
C++ cin.get(s,100)与cin.getline(s,100)问题:
下面代码中用了cin.get(s,100),要2个cin.get();而用cin.getline(s,100),只需一个cin.get();
代码如下:
#include <iostream>
using namespace std;
int count(char *s,char letter)
{
int count=0;
while(*s)
if(*s++==letter)
count++;
return (count);
}
int main()
{
char str[100],c;int n;
cout<<"Please input a integer:"<<endl;
cin>>n;cin.get();
while(n--)
{
cout<<"input a string:";
cin.get(str,10);
cin.get();/*这里一个*/
cout<< "input a letter:";
cin>>c;
cout<<"the count is:"<<count(str,c)<<endl;
cin.get();/*这里又一个,才使程序正常*/
}
return 0;
}
#include <iostream>
using namespace std;
int count(char *s,char letter)
{
int count=0;
while(*s)
if(*s++==letter)
count++;
return (count);
}
int main()
{
char str[100],c;int n;
cout<<"Please input a integer:"<<endl;
cin>>n;cin.get();
while(n--)
{
cout<<"input a string:";
cin.getline(str,10);/*这里用了cin.getline(str,100),下面只需一个cin.get(),就正常了*/
cout<< "input a letter:";
cin>>c;
cout<<"the count is:"<<count(str,c)<<endl;
cin.get();
}
return 0;
}
------解决方案--------------------
下面代码中用了cin.get(s,100),要2个cin.get();而用cin.getline(s,100),只需一个cin.get();
代码如下:
#include <iostream>
using namespace std;
int count(char *s,char letter)
{
int count=0;
while(*s)
if(*s++==letter)
count++;
return (count);
}
int main()
{
char str[100],c;int n;
cout<<"Please input a integer:"<<endl;
cin>>n;cin.get();
while(n--)
{
cout<<"input a string:";
cin.get(str,10);
cin.get();/*这里一个*/
cout<< "input a letter:";
cin>>c;
cout<<"the count is:"<<count(str,c)<<endl;
cin.get();/*这里又一个,才使程序正常*/
}
return 0;
}
#include <iostream>
using namespace std;
int count(char *s,char letter)
{
int count=0;
while(*s)
if(*s++==letter)
count++;
return (count);
}
int main()
{
char str[100],c;int n;
cout<<"Please input a integer:"<<endl;
cin>>n;cin.get();
while(n--)
{
cout<<"input a string:";
cin.getline(str,10);/*这里用了cin.getline(str,100),下面只需一个cin.get(),就正常了*/
cout<< "input a letter:";
cin>>c;
cout<<"the count is:"<<count(str,c)<<endl;
cin.get();
}
return 0;
}
C++
------解决方案--------------------
/**
* @brief Simple multiple-character extraction.
* @param __s Pointer to an array.
* @param __n Maximum number of characters to store in @a s.