C语言基础下的C 入门

发布于:2023-06-29 19:48:53

喜欢的可以收藏转发加关注

小程序的入门(一)~~!!

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 //结果 132

C++实现:>>>

#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++学习资料及学习视频


免责声明:本站所有内容及图片均采集来源于网络,并无商业使用,如若侵权请联系删除。

上一篇:网课:C 教程网跟我一起学C ***季

下一篇:跟着教程抓紧办 2022年度个税汇算本月底结束

资讯 观察行业视觉,用专业的角度,讲出你们的心声。
MORE

I NEED TO BUILD WEBSITE

我需要建站

*请认真填写需求信息,我们会在24小时内与您取得联系。