cin.getline(array,n)僅會捨棄停止擷取字元,不會捨棄enetr鍵'\n'或空白鍵,除非以enetr鍵'\n'或空白鍵作為停止擷取字元.
範例一:cin.getline(array,10);輸入abc 按enter鍵三次.
第一次enter鍵為預設停止擷取字元'\n'將被捨去,第二次enter鍵則給cin.get(ch1);接收,第三次enter鍵則給 cin.get(ch2);接收.
(若為cin.get(array,10);輸入abc後僅須按二次enter鍵,(第一次enter鍵不被捨去,給cin.get(ch1);接收,
第二次enter鍵則給cin.get(ch2);接收.)
輸出:
array[0] =a
(int)ch1=10 (第二次enter鍵的10進制值)
ch2= (第三次enter鍵的空字元)
(int)ch2=10 (第三次enter鍵的10進制值)
int main()
{
char ch1,ch2,array[10];
cin.getline(array,10);
cin.get(ch1);
cin.get(ch2);
cout<<"array[0] = "<<array[0]<<endl;
cout<<"array[1] = "<<array[1]<<endl;
cout<<"array[2] = "<<array[2]<<endl;
cout<<"array[3] = "<<array[3]<<endl;
cout<<"(int)array[3] = "<<(int)array[3]<<endl;
cout<<"array[4] = "<<array[4]<<endl;
cout<<"(int)array[4] = "<<(int)array[4]<<endl;
cout<<"array[5] = "<<array[5]<<endl;
cout<<"(int)array[5] = "<<(int)array[5]<<endl;
cout<<" ch1 = "<<ch1<<endl;
cout<<"(int)ch1 = "<<(int)ch1<<endl;
cout<<" ch2 = "<<ch2<<endl;
cout<<"(int)ch2 = "<<(int)ch2<<endl;
範例二:cin.geline(array,10,'p')輸入abcp 按enter兩次.
停止擷取字元'p'被捨去,第一次enter鍵則給cin.get(ch1);接收,第二次enter鍵則給 cin.get(ch2);接收.
(若為cin.get(array,10,'p');輸入abcp 按enter一次.
停止擷取字元p沒被丟棄,而滯留在buffer內,被第二次cin.get(ch1);函式擷取輸入到ch1
enter鍵字元被第三次cin.get(ch2);函式擷取輸入到ch2
輸出:
array[0] =a
ch1=10 (第一次按enter鍵的空字元的10進制值10)
ch2= (第二次按enter鍵的空字元)
ch2=10 (第二次按enter鍵的空字元的10進制值10)
int main()
{
char ch1,ch2,array[10];
cin.getline(array,10,'p');
cin.get(ch1);
cin.get(ch2);
cout<<"array[0] = "<<(int)array[0]<<endl;
cout<<"array[1] = "<<(int)array[1]<<endl;
cout<<"array[2] = "<<(int)array[2]<<endl;
cout<<"array[3] = "<<(int)array[3]<<endl;
cout<<"array[4] = "<<(int)array[4]<<endl;
cout<<"array[5] = "<<(int)array[5]<<endl;
cout<<"ch1 = "<< ch1<<endl;
cout<<"ch1 = "<<(int)ch1<<endl;
cout<<"ch2 = "<< ch2<<endl;
cout<<"ch2 = "<<(int)ch2<<endl;
system("pause");
return 0;
}
留言列表