若第二次的cin.get()或cin.getline()擷取函式 , 其停止擷取字元非空白鍵(space) , tab與enter鍵 ,則
第一次cin>>擷取遇到空白鍵(space) , tab與enter鍵 , 則將其滯留在buffer內 ,並提供給第二次的cin.get()或cin.getline()擷取函式
擷取.
int main(void)
{
char ch=' ';
char array1[20];
char array2[20];
cout<<" ch = "<<ch<<endl;
cout<<"array1 = "<<array1<<endl;
cout<<"array2 = "<<array2<<endl;
cin>>ch;
cin.get(array1,20,'f');
cin.get(array2,20,'g');
cout<<" ch = "<<ch<<endl<<endl;
cout<<"array1[0] = "<<(int)array1[0]<<endl;
cout<<"array1[1] = "<<(int)array1[1]<<endl;
cout<<"array1[2] = "<<(int)array1[2]<<endl;
cout<<"array1[3] = "<<(int)array1[3]<<endl<<endl;
cout<<"array2[0] = "<<(int)array2[0]<<endl;
cout<<"array2[1] = "<<(int)array2[1]<<endl;
cout<<"array2[2] = "<<(int)array2[2]<<endl;
cout<<"array2[3] = "<<(int)array2[3]<<endl;
system("pause");
return 0;
}
例如輸入
a(enter鍵)
f(enter鍵)
g(enter鍵)
ch=a
(int)array1[0] =10 //cin>>遇到預設的停止擷取字元enter鍵,則表示輸入完畢,並將enter字元滯留於buffer,以供下一個cin.get()擷取.
(int)array1[1] =0 //字串結束字元'\0'
array2[0] =f //cin.get(array1,20,'f')遇到設定的停止擷取字元'f',則表示輸入完畢,並將f與接在後面的enter字元滯留於
buffer,以供下一個cin.get(array2,20,'g')擷取.
留言列表