关于gets函数
#include<iostream>#define NUM 20
using namespace std;
int main()
{
int n;
int na,nb;
cin>>n;
while(n--)
{
cout<<"字符串1"<<endl;
char a;
gets(a);
cout<<"字符串2"<<endl;
char b;
gets(b);
na=strlen(a);
nb=strlen(b);
cout<<na<<" "<<nb<<endl;
}
return 0;
}
我原意是想输入n组数据,每一组输入两个字符串分别求其长度
可是运行结果是这样的,没有给我输入第一组字符串1的机会 cin>>n;之后,遗漏了换行符在缓冲区,为了不影响gets()获取一行字符串,先剔除换行符:while(getchar()! = '\n')
;#include<iostream>
#define NUM 20
using namespace std;
int main()
{
int n;
int na,nb;
cin>>n;
while(getchar()! = '\n')
;
while(n--)
{
cout<<"字符串1"<<endl;
char a;
gets(a);
cout<<"字符串2"<<endl;
char b;
gets(b);
na=strlen(a);
nb=strlen(b);
cout<<na<<" "<<nb<<endl;
}
return 0;
} mingcxx 发表于 2016-9-10 17:55
cin>>n;之后,遗漏了换行符在缓冲区,为了不影响gets()获取一行字符串,先剔除换行符:
谢谢
页:
[1]