+ -
当前位置:首页 → 问答吧 → 100分求助,用get函数和getline函数遇到界定符会发生什么?

100分求助,用get函数和getline函数遇到界定符会发生什么?

时间:2011-12-14

来源:互联网

书上说:
getline和get的区别:
getline自动获取最多n-1个字符。
getline遇到界定符时读入但不存储
get遇到界定符时不读入。

请问什么是界定符,是换行符吗?
get和getline遇到这个界定符会怎么样,
比如get遇到后,是不是输入就停止了,但是怎么叫不读入。
getline呢?

作者: longlong2234   发布时间: 2011-12-14

“getline遇到界定符时读入但不存储”是什么意思啊?

作者: longlong2234   发布时间: 2011-12-14

getline从输入流中删除结束符。
get却把该字符保留在输入流中。
所以读入多行字符时应使用getline函数。

能举个例子说明吗,多谢

作者: longlong2234   发布时间: 2011-12-14

数上有个例子
#include <iostream.h> 
#include <string.h>
const int SIZE=80;
void main() 

char s1[SIZE],s2[SIZE]; 
cout<<"输入一个英语句子:\n"; 
cin>>s1; 
cin.getline(s2,SIZE); 
cout <<"用cin读入的字符串是:"<<s1;
cout<<"字符数:"<<strlen(s1)<<endl;  
  cout <<"用cin.getline读入的字符串是:"<<s2;
cout<<"字符数:"<<strlen(s2)<<endl;
}  
为什么是下面的结果?
本程序的执行示例结果: 
输入一个英语句子: You are a student.
用cin读入的字符串是: You 字符数:3
用cin.getline读入的字符串是: are a student. 字符:15

作者: longlong2234   发布时间: 2011-12-14

据我理解,所谓的界定符就是文件终止符'\0'
get每次获取一个字符,当它发现读入的是一个终止符的时候,就停止输出;
getline在不超过缓冲区的条件下每次获取一行,由于它读入的n个字符包括一个换行符,所以实际上只读入了n-1个字符(不包括换行符);若是到文件末尾,getline读到的字符中还包括了一个终止符,终止符之前的字符存储到缓冲区然后输出,终止符并不存储。

作者: wsllq334   发布时间: 2011-12-14

热门下载

更多