【c++】小甲鱼C++快速入门(一)

来源:互联网 发布:submit for mac 编辑:程序博客网 时间:2024/04/28 22:42


一个c程序

输入一串整数和任意数目的空格,计算整数的和

#include<stdio.h>int main(){    int sum=0;    int i;    char ch;    printf("输入一串整数和任意数目的空格:");    while( scanf("%d",&i)==1)    {        sum+=i;        while((ch=getchar())==' ');//屏蔽空格        if(ch=='\n')            break;        ungetc(ch,stdin);//将变量ch中存放的字符退回stdin输入流    }    printf("结果是:%d",sum);    return 0;}


cin.peek() & cin.get()

#include<iostream>using namespace std;int main(){    int sum=0;    cout << "输入一串整数和任意数目的空格:";    int i;    while( cin>>i )    {        sum +=i;        while(cin.peek()==' ')//peek的意思是偷窥。在这里意思是只是识别到字符,但是并不把字符从流中拿走        {            cin.get();        }        if(cin.peek()=='\n')            break;    }    cout<<"结果是:"<<sum<<endl;    return 0;}
用法一:cin.get(字符变量名)可以用来接收字符
用法2:cin.get(字符数组名,接收字符数目)用来接收一行字符串,可以接收空格
用法3:cin.get(无参数)没有参数主要是用于舍弃输入流中的不需要的字符,或者舍弃回车,弥补cin.get(字符数组名,接收字符数目)的    不足.
cin.peek()  其返回值是一个char型的字符,其返回值是指针指向的当前字符,但它只是观测,指针仍停留在当前位置,并不后移。如果要访问的字符是文件结束符,则函数值是EOF(-1)。
其功能是从输入流中读取一个字符 但该字符并未从输入流中删除




cin.ignore() & cin.getline()

#include<iostream>using namespace std;int main(){    char buf[20];    cin.ignore(7);    cin.getline(buf,10);    cout<<buf<<endl;    return 0;}


cin.ignore(a,ch)方法是从输入流(cin)中提取字符,提取的字符被忽略(ignore),

不被使用。每抛弃一个字符,它都要计数和比较字符:如果计数值达到a或者被抛弃的字

符是ch,则cin.ignore()函数执行终止;否则,它继续等待。它的一个常用功能就是用

来清除以回车结束的输入缓冲区的内容,消除上一次输入对下一次输入的影响。比如可

以这么用:cin.ignore(1024,'\n'),通常把第一个参数设置得足够大,这样实际上总是

只有第二个参数'\n'起作用,所以这一句就是把回车(包括回车)之前的所以字符从输

入缓冲(流)中清除出去。

如果cin.ignore()不给参数,则默认参数为cin.ignore(1,EOF),即把EOF前的1个字符清

掉,没有遇到EOF就清掉一个字符然后结束,会导致不正确的结果,因为EOF是文件结束

标识.

cin.getline()读取一行,直到读到换行符或者指定位数结束。最后一位为'\0'



cin.read() & cin.gcount()

#include<iostream>using namespace std;int main(){    const int SIZE=50;    char buf[SIZE];    cout<<"请输入一段文本:";    cin.read(buf,20);    cout<<"字符串收集到的字符数为:"        <<cin.gcount()<<endl;    cout<<"输入的文本信息是:";    cout.write(buf,20);    cout<<endl;    return 0;}

cin.read():读

cin.write()写

cin.gcount()计数


cout.precision & cout.width

#include<iostream>#include<math.h>using namespace std;int main(){    double result = sqrt(3.0);    cout << "对3开方保留小数点后0~9位,结果如下:\n"<<endl;        for (int i=0;i<=9;i++)    {        cout.precision(i);        cout<<result<<endl;    }    cout<<"当前的输出精度为:"<<cout.precision()<<endl;        return 0;}

cout.precision() :有效位数


#include<iostream>#include<math.h>using namespace std;int main(){    int width = 4;    char str[20];    cout<<"请输入一段文本:\n";    cin.width(5);//每次只接收4个字符,其他的放在流中等待接收。    while(cin>>str)    {        cout.width(width++);//输出的字符串宽度为width,不足的会用空格补足        cout<<str<<endl;        cin.width(5);    }    return 0;}



ctrl+z为文件结束符





原创粉丝点击