C++里cin,cin.getline, getline,gets几个不同的输入&小九九格式问题

C++中有多种输入方式,以满足用户输入的个性化

  1. cin (不多赘述)
    结束方式:空格,tab,回车
    头文件:iostream

  2. gets()
    功能与scanf(“%s”,s)相似。
    结束方式:回车
    头文件:iostream+string

  3. cin.get()
    用来接收字符

int main()
{
    char ch;
    cin.get(ch);
    cout<<ch<<endl;
}

输入

Holle

输出

H
Program ended with exit code: 0

结束方式:空格,tab,回车
头文件:iostream

  1. cin.get(数组名,接收字符数)
    用来接收一行有空格的字符串
int main()
{
    char ch[100];
    cin.get(ch,100);
    cout<<endl<<ch<<endl;
}

输入

Hello World
1 2 3

输出

Hello World
Program ended with exit code: 0

结束方式:回车
头文件:iostream

  1. getline(cin,字符串名)
    用来接收一行有空格和回车的字符串组
    以题举例链接: link.(去掉空格)
    题解来自:link.
int main()
{
    string word;
    while (getline(cin, word))
    {
        if (word == "End of file")
            return 0;
        string s;
        for (auto& a : word)
            if (isgraph(a))
                    s += a;
    cout << s << endl;
    }
}

输入

Hello World
1 2 3
ghj fgh

输出

Helloworld
123
ghjfgh
Program ended with exit code: 0

结束方式:
头文件:iostream+string

  1. cin.getline(数组名,接收字符数)
    用来接收一行有空格的字符串
int main()
{
    char ch[2][100];
    int i=0;
    while(i<2)
    {
        cin.getline(ch[i],100);
        cout<<endl<<ch[i]<<endl;
    }
}

输入

Hello World
1 2 3

输出

Hello World
1 2 3
Program ended with exit code: 0

结束方式:
头文件:iostream+string

  1. getchar()
    用于接收字符,可以用来消化一个回车。
main ()
{
    char ch;
    ch=getchar();
    cout<<ch<<endl;
}

输入

Hello World

输出

H
Program ended with exit code: 0

消化回车

main ()
{
    char ch,sh;
    ch=getchar();
    getchar();
    sh=getchar();
    cout<<ch<<sh<<endl;
}

输入

H
W

输出

HW
Program ended with exit code: 0

小九九格式问题(有些东西还是要记得…)

如果只是单纯的用空格来隔开每个公式就会是这样的格式

1*1=1 
1*2=2 2*2=4 
1*3=3 2*3=6 3*3=9 
1*4=4 2*4=8 3*4=12 4*4=16 
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25 
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49 
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81 

但是用"\t"就有自动的对齐

int main()
{
    int i,j;
    for(i=1;i<=9;i++)
    {
        for(j=1;j<=i;j++)
        {
            printf("%d*%d=%d\t",j,i,j*i);
        }
        printf("\n");
    }
}

//结果
1*1=1	
1*2=2	2*2=4	
1*3=3	2*3=6	3*3=9	
1*4=4	2*4=8	3*4=12	4*4=16	
1*5=5	2*5=10	3*5=15	4*5=20	5*5=25	
1*6=6	2*6=12	3*6=18	4*6=24	5*6=30	6*6=36	
1*7=7	2*7=14	3*7=21	4*7=28	5*7=35	6*7=42	7*7=49	
1*8=8	2*8=16	3*8=24	4*8=32	5*8=40	6*8=48	7*8=56	8*8=64	
1*9=9	2*9=18	3*9=27	4*9=36	5*9=45	6*9=54	7*9=63	8*9=72	9*9=81	
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值