C++从入门到精通——C++输入和输出

这篇具有很好参考价值的文章主要介绍了C++从入门到精通——C++输入和输出。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

C++中的输入和输出主要通过标准库中的iostream类实现。使用cin对象从标准输入(如键盘)读取数据,使用cout对象将数据写入标准输出(如屏幕)。

可能大家总是会看到像这样的头文件#include<bits/stdc++.h>,其实这个头文件包含的是C++里大多数的头文件,在参加竞赛的时候就不需要花时间来写很多头文件了,直接写这一个就够了


一、C++打印Hello World

新生婴儿会以自己独特的方式向这个崭新的世界打招呼,C++刚出来后,也算是一个新事物,

c++打印输出,C++从入门到精通,c++,开发语言,c语言,visual studio,考研,学习方法,程序人生

那C++是否也应该向这个美好的世界来声问候呢?我们来看下C++是如何来实现问候的。

ps:在VC6.0中需要引用的头文件是#include<iostream.h>本文使用的是VS2022,以前一些老的编译器需要.h,新版编译器一般是不需要.h

#include<iostream>
// std是C++标准库的命名空间名,C++将标准库的定义实现都放到这个命名空间中
using namespace std;
int main()
{
	cout << "Hello world!!!" << endl;
	return 0;
}

c++打印输出,C++从入门到精通,c++,开发语言,c语言,visual studio,考研,学习方法,程序人生

二、C++输入&输出

在C++中想要调用函数除了引用头文件外还需要引用命名空间,关于命名空间可以看我C++从入门到精通——命名空间这篇文章,之所以需要这样,是为了防止冲突,本文的输入和输出函数都在命名空间std

关于I/O流

输入/输出流是计算机程序中用于读取和写入数据的一种方式。它允许程序从外部设备(如硬盘、键盘、网络等)读取数据,或将数据写入到外部设备中。

I/O流可以分为字节流和字符流两种类型。

字节流以字节(8位)为单位进行读写。它提供了一种通用的方式来处理任意类型的数据,包括文本、图片、音频等。常见的字节流类有InputStreamOutputStream

ps:根据InputStreamOutputStream,我们可以看到C++输入输出的头文件#include <iostream>取的就是输入和输出流的英文简写

字符流以字符(16位)为单位进行读写。它提供了更方便的方式来处理文本数据,支持字符的编码和解码。常见的字符流类有ReaderWriter

I/O流还可以根据读写的方式分为同步流和异步流。

同步流是指程序在读写数据时会阻塞,直到读写操作完成才继续执行后面的代码。它适用于数据量较小的情况,或者需要数据顺序读写的场景。

异步流是指程序在读写数据时不会阻塞,可以继续执行后面的代码。它适用于数据量较大、需要并发读写的情况,可以提高程序的性能。

在使用I/O流时,程序需要先创建流对象,然后通过流对象进行数据的读写操作。读取数据时,程序会从流中读取一定数量的字节或字符,并将其存储在内存中;写入数据时,程序会将内存中的字节或字符写入到流中,以传输到外部设备。

I/O流是计算机程序中常用的数据输入输出方式,它提供了灵活和高效的读写操作,使程序能够与外部设备进行有效的数据交互。

C++输入&输出

C++输入&输出是编程中不可或缺的两个环节,它们分别负责从外部获取数据和将程序处理结果展示给用户。在C++中,标准库提供了一组丰富的I/O函数和流对象,使得输入和输出操作变得简单而高效。(即#include <iostream>

从输入的角度来看,C++提供了多种方式来接收用户或其他数据源提供的信息。最常用的方式是使用cin对象,它是与标准输入流(通常是键盘)相关联的istream(标准输入流)对象。例如,我们可以使用cin >>运算符来读取整数、浮点数、字符串等各种类型的数据。此外,C++还提供了scanf函数,它提供了更多的格式化输入功能,允许我们按照指定的格式读取数据。(C++是兼容C语言的,所以C语言的语法C++也能用,主要根据自己的爱好)

输出方面,C++同样提供了多种方式来展示程序的处理结果。最常用的方式是使用cout对象,它是与标准输出流(通常是显示器)相关联的ostream(标准输出流)对象。通过cout <<运算符,我们可以将各种类型的数据输出到屏幕上。此外,C++还提供了printf函数,它提供了类似于scanf的格式化输出功能,允许我们按照指定的格式输出数据。

在实际编程中,输入和输出通常是紧密相关的。例如,在编写一个计算器程序时,我们需要从用户那里获取输入的数字和运算符,然后进行计算并将结果输出给用户。在这个过程中,输入和输出都是必不可少的环节。

为了提高程序的健壮性和用户友好性,我们还需要注意一些输入输出的细节问题。例如,在读取用户输入时,我们应该检查输入的有效性并给出相应的错误提示;在输出结果时,我们应该注意格式化和排版,使得输出结果清晰易读。

总之,C++输入&输出是编程中不可或缺的两个环节。通过合理使用C++提供的I/O函数和流对象,我们可以轻松地实现数据的输入和输出操作,为编写高效、健壮、用户友好的程序打下坚实的基础。

cout函数

cout函数是C++中的标准输出函数,用于将数据输出到控制台或其他输出设备。它位于iostream头文件中,使用前需要包含该头文件。cout函数的原型为:

std::ostream& cout (std::ostream& os);//&在c++中可以是取地址,也可以是取别名,具体可看后续文章讲解

cout函数可以接受各种数据类型作为参数进行输出,并且可以通过运算符重载的方式实现对不同数据类型的输出。使用cout函数进行输出时,可以使用插入运算符(<<)来将数据插入到输出流中。

例如,输出一个整数可以使用以下语句:

int num = 10;
cout << num;

输出一个字符串可以使用以下语句:

std::string str = "Hello, world!";
cout << str;

cout函数可以与其他输出操作符一起使用,以便于输出多个数据。

int num1 = 10;
int num2 = 20;
cout << "Numbers: " << num1 << " and " << num2;

上述代码输出结果为:"Numbers: 10 and 20"

ps:cout函数打印数据是自动识别类型的不需要我们像printf一样打印类型

cin函数

cin函数是C++语言中的标准输入流函数,用于从用户输入获取数据。它可以读取各种类型的数据,如整数、浮点数、字符、字符串等。cin函数可以与运算符>>结合使用,将用户输入的数据赋值给相应的变量。例如:

int num;
cout << "请输入一个整数:";
cin >> num;
cout << "您输入的整数是:" << num << endl;

在上面的代码中,cin函数用于读取用户输入的整数,并将其赋值给变量num。然后,使用cout函数将变量num的值输出到屏幕上。

需要注意的是,cin函数会按照空格或回车键将输入的内容分割成多个部分,并分别赋值给相应的变量。可以使用getline函数来读取包含空格的字符串。

ps:cin函数也是自动识别类型的不需要我们像scanf一样打印类型

endl函数

函数名: endl

功能: 在输出流中插入一个换行符,并刷新输出缓冲区

用法示例:

#include <iostream>
using namespace std;

int main() {
   cout << "Hello, World!" << endl;
   // 或者
   cout << "Hello, World!" << '\n' << flush;  // '\n'为换行符, flush刷新输出缓冲区
   return 0;
}

解释: endl是C++标准库中iostream头文件中的一个输出控制符。当在输出流中插入endl时,它会在输出流中插入一个换行符,并刷新输出缓冲区。刷新输出缓冲区的作用是将缓冲区中的内容立即刷新到输出设备上,而不是等待缓冲区满或程序结束时才刷新。

三、C++输入和输出的说明

  1. 使用cout标准输出对象(控制台)和cin标准输入对象(键盘)时,必须包含< iostream >头文件
    以及按命名空间使用方法使用std
  2. coutcin是全局的流对象,endl是特殊的C++符号,表示换行输出,他们都包含在包含<iostream>头文件中。
  3. <<是流插入运算符,>>是流提取运算符。
  4. 使用C++输入输出更方便,不需要像printf/scanf输入输出时那样,需要手动控制格式。C++的输入输出可以自动识别变量类型。
  5. 实际上coutcin分别是ostreamistream类型的对象,>><<也涉及运算符重载等知识,这些我将在后续文章讲解

注意:早期标准库将所有功能在全局域中实现,声明在.h后缀的头文件中,使用时只需包含对应头文件即可,后来将其实现在std命名空间下,为了和C头文件区分,也为了正确使用命名空间,规定C++头文件不带.h;旧编译器(vc 6.0)中还支持<iostream.h>格式,后续编译器已不支持,因此推荐使用<iostream>+std的方式。

#include <iostream>
using namespace std;
 
int main()
{
   int a;
   double b;
   char c;
     
   // 可以自动识别变量的类型
   cin>>a;
   cin>>b>>c;
     
   cout<<a<<endl;
   cout<<b<<" "<<c<<endl;
   return 0;
}

printf、scanf和cout、cin的区别

printfscanf是C语言的标准输入输出函数,而coutcin是C++语言的输入输出流对象。

主要区别如下:

  1. 语法:printfscanf使用C语言的函数调用语法,而coutcin使用C++的流对象调用语法。
  2. C++特性:coutcin支持C++的一些特性,如运算符重载、类型安全等。而printfscanf没有这些特性。
  3. 格式化输出:printfscanf可以使用格式控制符进行格式化输出和输入,而coutcin通常使用<<>>运算符来实现格式化输出和输入。
  4. 错误处理:printfscanf的错误处理相对简单,它们返回一个错误代码来指示是否成功。而coutcin则使用C++的异常机制来处理错误。
  5. 功能:coutcin提供了更多的功能,包括自动类型转换、流控制、格式化输出等。

总的来说,printfscanf是C语言的输入输出函数,功能相对简单,而coutcin是C++语言的输入输出流对象,功能更丰富,更方便使用。这两种方法可以根据读者自己的喜好选择合适的来使用

cout函数和cin函数控制精度和宽度

关于控制精度和宽度,在我看来在某些条件下C++的方法不如C语言的方法,我们可直接使用printfscanf完美解决

控制精度:

使用cout函数输出浮点数时,可以使用setprecision函数来控制输出的精度。setprecision函数位于<iomanip>头文件中,可以通过调用它来设置输出的精度。例如:

#include<iostream>
#include<iomanip>

int main() {
    double num = 3.14159265358979323846;
    std::cout << std::setprecision(5) << num << std::endl; // 输出3.1416
    std::cout << std::setprecision(9) << num << std::endl; // 输出3.14159265
    return 0;
}

控制宽度:

使用cout函数输出时,可以使用setw函数来设置输出的宽度。setw函数位于<iomanip>头文件中,可以通过调用它来设置输出的宽度。例如:

#include<iostream>
#include<iomanip>

int main() {
    int num = 123;
    std::cout << std::setw(5) << num << std::endl; // 输出  123(5个宽度)
    std::cout << std::setw(3) << num << std::endl; // 输出 123(3个宽度不够时会自动扩展)
    return 0;
}

控制输入的精度和宽度:

使用cin函数输入时,可以使用setprecisionsetw函数来设置输入的精度和宽度。例如:

#include<iostream>
#include<iomanip>

int main() {
    double num;
    std::cin >> std::setprecision(5) >> num; // 输入3.1416,只保留五位有效数字
    std::cout << num << std::endl;

    int num2;
    std::cin >> std::setw(3) >> num2; // 输入 123,只读取三个字符
    std::cout << num2 << std::endl;

    return 0;
}

注意:setprecisionsetw函数只对之后的输出或输入起作用,并且它们的效果是持续的,直到下次被修改或程序结束。

std命名空间的使用惯例

std是C++标准库的命名空间,如何展开std使用更合理呢?文章来源地址https://www.toymoban.com/news/detail-852951.html

  1. 在日常练习中,建议直接using namespace std即可,这样就很方便。
  2. using namespace std展开,标准库就全部暴露出来了,如果我们定义跟库重名的类型/对象/函数,就存在冲突问题。该问题在日常练习中很少出现,但是项目开发中代码较多、规模大,就很容易出现。所以建议在项目开发中使用,像std::cout这样使用时指定命名空间 + using std::cout展开常用的库对象/类型等方式。

到了这里,关于C++从入门到精通——C++输入和输出的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【C++入门系列】——命名空间和输入输出

    📚lovewold少个r博客主页     ⚠️ 本文重点 : c++入门第一个程序和基本知识讲解 😄 每日一言 :忙,不会死,人只有越忙越活,流水不腐,户枢不蠹。 ​作者主页 前言 谈谈我个人对语言和职业的看法 C++的历史发展 C++第一个程序 命名空间 定义命名空间 使用此命名空间 命

    2024年02月05日
    浏览(44)
  • 【C++干货基地】C++入门篇:输入输出流 | 缺省函数 | 函数重载(文末送书)

    🎬 鸽芷咕 :个人主页  🔥 个人专栏 : 《C++干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活!   哈喽各位铁汁们好啊,我是博主鸽芷咕《C++干货基地》是由我的襄阳家乡零食基地有感而发,不知道各位的城市有没有这种实惠又全面的零食基地呢?C++ 本身作

    2024年01月25日
    浏览(43)
  • C++入门(1):命名空间,IO流 输入输出,缺省参数

    一、命名空间 1.1 命名空间的作用: ​ 避免标识符命名冲突 1.2 命名空间定义: :namespace PS: 命名空间可以嵌套. 在同一工程中,编译器会把 相同名称 的命名空间 合并 成到同一个命名空间中。 1.3 命名空间的使用 一个命名空间相当于定义了一个作用域,其中的所有内

    2024年02月07日
    浏览(43)
  • 【C++对于C语言的扩充】C++与C语言的联系,命名空间、C++中的输入输出以及缺省参数

    铁子们好啊!这是阿辉新开的专栏《拿下C++》的第一篇文章,本文主要带大家了解一下C++,带大家从C语言过渡到C++,所以大家首先要有C语言的基础,否则后面的内容你可能会异常懵逼。不会C语言的铁子,这里推荐各位先看阿辉的专栏《爱上C语言》(点击即可跳转,自荐一下

    2024年02月03日
    浏览(35)
  • 【C++初阶】一、入门知识讲解(C++关键字、命名空间、C++输入&输出、缺省参数、函数重载)

    ========================================================================= 相关代码gitee自取 : C语言学习日记: 加油努力 (gitee.com)  ========================================================================= 接上期 : 【数据结构初阶】十一、归并排序(比较排序)的讲解和实现 (递归版本 + 非递归版本 -- C语言实

    2024年02月05日
    浏览(49)
  • 从键盘输入一个3×4的矩阵mat,请输出其最大的元素max及所在位置.(c++,c语言)

    c++: #includeiostream using namespace std; int i,j; int main() {     int a[3][4];     cout\\\"请输入3*4的矩阵:\\\";     for(i=0;i3;i++)     {         for(j=0;j4;j++)         {             a[i][j]=i,j;             cina[i][j];         }     }     int max;     max=a[0][0];     for(i=0;i3;i++)     {  

    2024年02月09日
    浏览(54)
  • 【c++】C++输入&输出

    新生婴儿会以自己独特的方式向这个崭新的世界打招呼,C++刚出来后,也算是一个新事物,那C++是否也应该向这个美好的世界来声问候呢?我们来看下C++是如何来实现问候的 说明: 使用 cout标准输出对象(控制台) 和 cin标准输入对象(键盘) 时,必须 包含 iostream 头文件 以及按

    2024年01月22日
    浏览(42)
  • 【C++篇】C++的输入和输出

    友情链接:C/C++系列系统学习目录 知识总结顺序参考C Primer Plus(第六版)和谭浩强老师的C程序设计(第五版)等,内容以书中为标准,同时参考其它各类书籍以及优质文章,以至减少知识点上的错误,同时方便本人的基础复习,也希望能帮助到大家   最好的好人,都是犯过

    2024年02月09日
    浏览(39)
  • C++系列五:输入/输出

    输入是指从外部源获得数据的过程, C++中可通过键盘或文件等外部源来获取输入数据。 (1) cin cin 是C++标准库中的一个输入流对象,用于从标准输入设备(通常是键盘)读取数据。 cin 是一个用于读取不同类型数据的操作符。 e.g. 从用户输入读取整数: 运行上述代码,输出

    2024年02月03日
    浏览(33)
  • C++系列-输入输出

    🌈个人主页:羽晨同学   💫个人格言:“成为自己未来的主人~”    我们都知道C语言的输出是用printf函数来实现的,那么C++呢,它的实现逻辑是什么呢,让我们一起来看一下,   说明:  使用cout标准输出对象(控制台)和cin标准输入对象(键盘)时,必须包含iostream头文件

    2024年04月27日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包