如果有需要查看我的题解,请关注我的洛谷博客

C++的输入和输出

本文作者frankchenfu,blogs网址http://www.cnblogs.com/frankchenfu/,转载请保留此文字。

C++是一种常用的编程语言。一个完整的程序至少要有一个输出,而我们也经常需要在程序内进行大量输入和输出。所以今天,我和大家谈一谈输入和输出。

1、cin和cout。可以连续输入,使用流(>>)。有专门的输出的换行“endl”。

cin>>a>>b;
cout<<"asdasdasd"<<endl;

2、scanf和printf。scanf和printf虽然需要占位符,不是很方便,而且容易因为系统影响在评测时莫名出错,但是它的效率大幅超过了cin和cout。

scanf("%d%lf",number,score);
printf("%d\n",rank);

3、getchar和putchar。getchar和putchar本是字符的输入和输出,但是因为,所以更经常用于输入输出优化。下面的代码是针对全体整数的(输出需要自己输出时改符号哦)。

int s()
{
    char ch=getchar();
    int re=0;
    bool fl=1;
    if(ch=='-')
    {
        fl=0;
        ch=getchar();
    }
    while(ch>='0'&&ch<='9')
    {
        re=re*10+ch-'0';
        ch=getchar();
    }
    return fl?re:-re;
}
void w(int r)
{
    if(r>9)
        w(r/10);
    putchar(r%10+'0');
}

没有负号?更简单:

int s()
{
    char ch=getchar();
    int re=0;
    while(ch<'0'||ch>'9')
        ch=getchar();
    while(ch>='0'&&ch<='9')
    {
        re=(re<<3)+(re<<1)+ch-'0';
        ch=getchar();
    }
    return re;
}

当然,也可以用于字符的输入输出。例如,

a=getchar();
putchar('\n');

4、gets和puts,以及getline。

这些都是针对字符串的,在写高精度的时候也会用到。需要注意的是,puts是包括输出一个换行符的,也就是说,如果输出后不想换行,只能使用printf("%s",……)了。

gets(a1);
puts("asdasdasd");
getline(cin,s1);

希望对大家有所帮助,谢谢。

posted @ 2017-01-24 21:24  frankchenfu  阅读(1916)  评论(0编辑  收藏  举报

如果有需要查看我的题解,请关注我的洛谷博客