区分cin,cin.get(),cin.getline(),getline

    xiaoxiao2024-12-28  16

    1.cin 用法一:最基本的输入 cin>>a>>b; 输入:2[回车]3[回车] 输出:5 注意:>>是会过滤掉不可见字符(如空格回车,TAB等) cin>>noskipws>>input[i]//不想略过空白字符,就使用noskipws流控制 用法二:接受一个字符串,遇“空格”、“TAB”、“回车”都结束 char a[20]; cin>>a; 输入:jijijj jij 输出:jijijj string s[4] cin>>s[0]>>s[1]>>s[2] 2.cin.get() 用法一:cin.get(字符变量名)可以用来接收字符 char ch; ch=cin.get();或是cin.get(ch) 输入:adssd 输出:a 用法二:cin.get(字符数组名,接受字符数目)用来接收一行字符串,可以接收空格 char a[20]; cin.get(a,20); 输入:aaaaaaaaaaaaaaaaaaaaaa(输入大于20个字符) 输出:aaaaaaaaaaaaaaa(接收19个字符+1个'\0') 用法三:cin.get(无参数)没有参数主要是用于舍弃输入流中的不需要的字符,或者舍弃回车,弥补cin.get(字符数组名,接受字符数目)的不足 /稍后补充 3.cin.getline()接收一个字符串,可以接收空格并输出 char m[20] cin.getline(m,5) 输入:asdfghj 输出:asdf 最后一个是'\0' 延申:cin.getline()有三个参数,最后一个参数是结束字符,系统默认'\n' 用在多维数组中,也可以用cin.getline() char m[3][20] cin.getline(m[i],20)// int n; cin>>n; char s[n][20]; for(int i=0;i<n;i++) {  cin.getline(s[i],20,'\n'); } 若n=3,只能输入2行,为什么?会在输入n的时候吃掉一行?而且是第0行,就是说没有s[0] 4.getline()接收一个字符串,可以接收空格并输出,需要包含#include<string> string str; getline(cin,str) 和cin.getline()类似,但是cin.getline()属于istream流,而getline()属于string流,是两个不一样的函数 5.接收字符 char ch; ch=getchar();
    转载请注明原文地址: https://ju.6miu.com/read-1295082.html
    最新回复(0)