C语言基础下的C++入门---极其绝望的又一次入门,不过这次一定是最后一次入门!!!!!

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

#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++里的另一个特点:支持重载。重载事实上就是允许我们按照不同的方式使用同一个操作符,在不同的语境里发挥不同的作用。

小程序入门(二)

要求:编写一个程序,要求用户输入一串整数和恩义数目的空格,这些整数必须位于同一行中,但允许出现在该航中的任何位置,当用户按下键盘上的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();:    1.cin.get(字符变量名)可以用来接收字符;2.cin.get(字符数组名,接收字符数目)用来接收一行字符串,可以接收空格;3.cin.get(无参数)没有参数主要是用于舍弃输入流中的不需要的字符,或者舍弃回车
//用法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();:函数的返回值:当前输出宽度

     

     

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 当然有必要学习C++,因为C++是C语言的扩展,它不仅继承了C语言的优点,还增加了很多新的特性和功能,可以更好地支持面向对象编程和泛型编程。此外,C++也是很多行业和领域的主流编程语言,掌握它可以为你的职业发展带来更多机会。 ### 回答2: 学习了C语言之后,是否还有必要继续学习C取决于个人的学习目标和职业发展规划。以下是一些建议供参考。 1. 拓宽编程能力:学习C语言可以提高编程基础和算法思维,但C语言的应用领域有限。学习其他编程语言,如Python、Java或C++,可以拓宽自己的编程技能,适应不同的开发需求。 2. 学习系统编程:C语言是一种底层编程语言,对系统编程非常有用。如果你对操作系统、嵌入式系统或网络编程感兴趣,继续学习C语言将有助于深入理解底层机制和进行性能优化。 3. 学习开源项目:许多开源项目使用C语言,如Linux内核、SQLite数据库和FFmpeg多媒体框架等。学习C语言可以为参与这些项目的开发提供基础,并且能够了解和实践开源软件开发的流程和理念。 4. 职业发展需求:如果你的职业规划涉及与C相关的领域,如嵌入式软件工程师、系统程序员或游戏开发者等,学习C语言仍然是必要的。 综上所述,学习C语言是为了拓宽编程能力,深入系统编程,参与开源项目及满足职业发展需求。然而,学习C语言是否有必要还要根据个人兴趣和职业规划来决定。最重要的是持续学习和不断拓展自己的技能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值