喜欢的可以收藏转发加关注
小程序的入门(一)~~!!
VS
#include<iostream> using namespace std;//命名空间 相当于 #include<iostream.h> -->> C92版本 int addArray(int *addArray,int n); int main(){ int data[] = {0,1,2,3,4,5,6,7,8,9}; int size =sizeof(data)/sizeof(data[0]); cout<<"结果是:"<<addArray(data,size)<<endl;//endl是结束标志 输出流必须得有一个结束标志吧 return 0; } int addArray(int *array,int n){ int sum = 0; int i; for(i=0;i<n;i++){ sum += *array++; } return sum; }这个小程序展示了C++对象的第一次使用。对象在哪里?就是“cout”。
C语言里的printf是一个函数,而C++里的cout是一个输出流对象,他是“console out”(控制台输出)的缩写,是属于basic_ostream类的对象。ostream类在iostream头文件中定义。
using namespace
这是一个指定,这条指定带给我们一个全新的概念:名字空间
C++标准库所使用的所有标识符或叫关键字(例如类,函数,对象等的名称)都是在同一个特殊的名字空间(std)中来定义的(相当于java里的包)。如果没有使用这条指令的话,我们将需要使用std::cout这样的语法来调用输出流对象。
在C语言里这个操作符叫左移操作符,在C++里并不是说改规则了,不是左移操作符了,而是体现了C++里的另一个特点:支持重载。重载事实上就是允许我们按照不同的方式使用同一个操作符,在不同的语境里发挥不同的作用。
小程序入门(二)
VS
要求:编写一个程序,要求用户输入一串整数和恩义数目的空格,这些整数必须位于同一行中,但允许出现在该航中的任何位置,当用户按下键盘上的enter键的时候,数据输入结束。程序自动对所有的整数进行求和并打印出结果。
C语言实现:>>>
#include<stdio.h> int main(){ int num,sum=0; char ch; while(scanf("%d",&num)==1){//scanf函数如果正常接收了一个指定数据 返回值是1 否则接收不正常 sum += num; while((ch=getchar())== ) ;//这个循环的作用是从缓冲区获取一个字符给ch 用来屏蔽空格 if(ch==\n) break;//如果获得的非空字符是回车 就跳出循环 输出计算结果 ungetc(ch,stdin); //如果从缓冲区获得的字符既不是空格 也不是回车 那说明是数字(数字是以某字符的ASC||码的形式存在ch里的) 就要把这个数字重新退回到缓冲区否则会影响计算 } printf("%d",sum); return 0; } //输入 22 22 33 44 //结果 132C++实现:>>>
#include<iostream> using namespace std; int main(){ int sum = 0; cout<<"请输入一串整数和任意数目的空格:"; int i; while(cin>>i){//从输入流对象中提取一个i类型的数据 //cin>>i返回输入流对象本身 也就是cin但是如果到达了文件尾或提取操作符遇到一个非法值 返回false sum += i; while(cin.peek()== ) cin.get();//从缓冲区获取一个字符下面有关于这个函数的讲解 if(cin.peek()==\n) break; } cout<<"结果是:"<<sum<<endl; return 0; }cin
C++实现的例子里使用了流的对象cin。这个对象的类型是istream,他知道如何从用户终端读取数据。
cin>>i;cin输入操作符又称为提取操作符,他一次从输入流对象中提取一个i类型的数据,在这个例子里i是整数,所以就从输入流里读取一个整数类型的数据。
当用户进行键盘输入的时候,对应的字符将输入到操作系统的键盘缓冲区中。这样当用户点击enter建的时候,操作系统把键盘缓冲区的内容传输到cin流的内部缓冲区,">>"操作符随后从这个缓冲区提取需要的信息。
最初定义为右移操作符,在C++中进行了重载,当他按照这里所提示的方式使用的时候,他就用于从输入流对象提取信息。
另外,这个操作符对所有内建的数据类型都进行了重载,所以他可以从输入流对象中提取字符串,float,double,int等数据
cin>>i返回输入流对象本身 也就是cin但是如果到达了文件尾或提取操作符遇到一个非法值 返回false。
cin cout对象的多个方法介绍
cin.ignore();:cin.ignore(a,ch)方法是从输入流(cin)中提取字符,提取的字符被忽略(ignore),不被使用。每抛弃一个字符,它都要计数和比较字符:如果计数值达到a或者被抛弃的字符是ch,则cin.ignore()函数执行终止;否则,它继续等待。它的一个常用功能就是用来清除以回车结束的输入缓冲区的内容,消除上一次输入对下一次输入的影响。
例如:比如可以这么用:cin.ignore(1024,\n),通常把第一个参数设置得足够大,这样实际上总是只有第二个参数\n起作用,所以这一句就是把回车(包括回车)之前的所以字符从输入缓冲(流)中清除出去。
cin.getline();:接收一个字符串,可以接收空格并输出,需包含“#include<string>”
#include <iostream> using namespace std; main () { char m[20]; cin.getline(m,5); cout<<m<<endl; } //输入:jkljkljkl //输出:jklj //接受5个字符到m中,其中最后一个为\0,所以只看到4个字符输出;cin.get();:
cin.get(字符变量名)可以用来接收字符;
cin.get(字符数组名,接收字符数目)用来接收一行字符串,可以接收空格;
cin.get(无参数)没有参数主要是用于舍弃输入流中的不需要的字符,或者舍弃回车
//用法1 #include <iostream> using namespace std; main () { char ch; ch=cin.get(); //或者cin.get(ch); cout<<ch<<endl; } //输入:jljkljkl //输出:j//用法1 #include <iostream> using namespace std; main () { char ch; ch=cin.get(); //或者cin.get(ch); cout<<ch<<endl; } //输入:jljkljkl //输出:j #include <iostream> using namespace std; main () { char a[20]; cin.get(a,20); cout<<a<<endl; } //输入:jkl jkl jkl //输出:jkl jkl jkl //输入:abcdeabcdeabcdeabcdeabcde (输入25个字符) //输出:abcdeabcdeabcdeabcd (接收19个字符+1个\0)cin.peek();:cin.peek()的返回值是一个char型的字符,其返回值是指针指向的当前字符,但它只是观测指针停留在当前位置并不后移;如果要访问的字符是文件结束符,则函数值是EOF(-1)
cout.precision();:cout.precision()其实是输出流cout的一个格式控制函数,也就是在iostream中的一个成员函数。precision()返回当前的浮点数的精度值,而cout.precision(val)其实就是在输出的时候设定输出值以新的浮点数精度值显示,即小数点后保留val位
cout.width();:函数的返回值:当前输出值。
学习C/C++的伙伴可以私信回复小编“学习”领取全套免费C/C++学习资料及学习视频
免责声明:本站所有内容及图片均采集来源于网络,并无商业使用,如若侵权请联系删除。