这里t
是我以测试用例的数量作为输入的变量。输入 1 时,它只是打印一个新行并终止。当给出一个大于 1 的数字时,它正在打印一个新行,然后要求新的输入。有人可以告诉我为什么吗?
#include "iostream"
#include "string"
using namespace std;
int main()
{
int t,i,k,l,j=0;
char c;
string s, s2;
cin >> t;
while(t>0)
{
cout << "Enter Name - " << endl;
getline (cin,s);
l = s.size();
s2 = toupper(s[0]);
for(i=1; i<l; i++)
{
if(s[i] == ' ')
{
c = toupper(s[i+1]);
s2 = s2 + ". " + c;
j = i;
}
if(i == l-1)
{
if(j!=0)
{
for(k=j+2; k<l; k++)
{
c = tolower(s[k]);
s2 = s2 + c;
}
}
else
{
for(k=1; k<l; k++)
{
c = tolower(s[k]);
s2 = s2 + c;
}
}
}
}
cout << s2 << endl;
s2 = ""; j=0; t--;
}
return 0;
}
输出-
puku@puku-mint /media/puku/Data/Work/Programs/C++ Mine/CodeChef/Easy $ ./a.out
1
Enter Name -
puku@puku-mint /media/puku/Data/Work/Programs/C++ Mine/CodeChef/Easy $ ./a.out
3
Enter Name -
Enter Name -
my name
M. Name
Enter Name -
this is name
T. I. Name
键入1<enter>
。cin >> t
只是消耗1
. 然后<enter>
被getline(cin,s)
消耗。