C++各种输入 |
您所在的位置:网站首页 › 文字输入方法有哪些 › C++各种输入 |
1.cin.get()基本用法 (1)1个参数 用法:a = cin.get() 或者 cin.get(a) 结束条件:输入字符足够后回车 说明:这个是单字符的输入,用途是输入一个字符,把它的ASCALL码存入到a中 处理方法:与cin不同,cin.get() 在缓冲区遇到[enter],[space],[tab]不会作为舍弃,而是继续留在缓冲区中 (2)2个参数 用法:cin.get(arrayname,size) 把字符输入到arrayname中,长度不超过size 注释:arrayname必须是char[]类型,即char数组类型,不可以为string类型;size是指输入长度,即允许输入的最大长度。 处理方法:假设把数据输入到 char a[arraylength],数组长度为arraylength。cin.get(a,size)—size,arraylength不同可以分为四类: 类1:输入串长arraylength,会自动扩张arrayname大小,使能保存所有数据 例1:char a[10];cin,get(a,20); 输入:123456789012[enter] 输出a数组:123456789012 可以发现,输入12个字符到a[10]中,系统自动扩充a[10],此时实际数组长为13(‘123456789012’\0’’)。但当计算sizeof(a)时,还是现实为10 类2:输入串长 例2:char a[10];cin.get(a,20); 输入:12345[enter] 输出:12345,此时数组内数据为‘12345‘\0’’ 类3:输入串长>size,先截取size个字符,若还是大于arraylength,则输入前arraylength-1个字符,最后补充‘\0’ 例3:char a[5];cin,get(a,10); 输入:123456789012[enter] 输出:123456789 先截取了9个字符变成‘123456789‘/0‘’,然后放入到a中,a自动扩张长度 类4:输入串长>size,先截取size个字符,若小于arraylength,则把截取串放入数组中,最后补充‘\0’ 例4:char a[15],cin.get(a,10) 输入:123456789012[enter] 输出:123456789 此时数组内为‘123456789‘\0’’ 注意:前size-1有效,最后一个补‘\0’ 综上:当吧大于数组长度的字符串放出char a[arraylength]中,系统自动扩张数组a的长度使a能放得下,但是这么做容易产生运行错误。 (3)3个参数 用法:cin.get(arrayname,size,s) 把数据输入到arrayname字符数组中,当到达长度size时结束或者遇到字符s时结束 注释:a必须是字符数组,即char a[]l类型,不可为string类型;size为最大的输入长度;s为控制,遇到s则当前输入结束缓存区里的s将被舍弃。 2.cin.getline()基本用法 cin.getline() 的用法和 cin.get() 用法大致相同,没有一参数用法,只有二参数,三参数两类 cin.gerline( arrayname, size ) cin.getline( arrayname, size, s ) 用法与 cin.get() 效果大致相同,但也有些区别 (1)cin.getline(arrayname,size)与cin.get(arrayname,size)的区别 cin.get(arrayname,size)当遇到[enter]时会结束目前输入,他不会删除缓冲区中的[enter] cin.getline(arrayname,size)当遇到[enter]时会结束当前输入,但是会删除缓冲区中的[enter] #include using namespace std; int main() { char a[10];char b; cin.get(a,10); cin.get(b); cout |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |