C++程序设计POJ》《WEEK7 输入输出和模板》

输入输出相关的类

与输入输出流操作相关的类

ios 基类

istream
是用于输入的流类, cin 就是该类的对象。

ostream
是用于输出的流类, cout 就是该类的对象。

ifstream
是用于从文件读取数据的类。

ofstream
是用于向文件写入数据的类。

iostream
是既能用于输入,又能用于输出的类。

fstream
是既能从文件读取数据,又能向文件写入数据的类。

标准流对象
?
输入流对象 : cin 与标准输入设备相连
?
输出流对象: cout 与标准输出设备相连
cerr
与标准错误输出设备相连
clog
与标准错误输出设备相连

缺省情况下
cerr<< Hello,world " << endl

clog << "Hello,world " << endl ;

和 cout<< Hello,world ” << endl ; 一样

标准流对象
?
cin 对应于标准输入流,用于从键盘读取数据,也可以被 重定向
为从文件中读取数据。
?
cout 对应于标准输出流,用于向屏幕输出数据,也可以被 重定
向 为向文件写入数据。
?
cerr 对应于标准错误输出流,用于向屏幕输出出错信息,
?
clog 对应于标准错误输出流,用于向屏幕输出出错信息,
?
cerr 和 clog 的区别在于 cerr 不使用缓冲区 直接向显示器输出信
息;而输出到 clog 中的信息先会被存放在缓冲区 缓冲区满或者
刷新时才输出到屏幕。

判断输入流结束

可以用如下方法判输入流结束
int x;
while(cin>>x)  // 比较复杂的内容,强制类型转换,转成BOOL类型

{

}
return 0;
?
如果是从文件输入,比如前面有
freopen(“some.txt”,”r”,stdin);
那么,读到文件尾部,输入流就算结束

如果从键盘输入,则在单独一行输入 Ctrl+Z 代表输入流结束

istream类的成员函数

#define _CRT_SECURE_NO_WARNINGS
//#define _CRT_SECURE_NO_WARNINGS
/*输出重定向*/
#if 0
#include<iostream>
using namespace std;

int main()
{
    int x, y;
    cin >> x >> y;
    freopen("test.txt", "w", stdout); // 输出重定向
    if (y == 0)
        cerr << "error.zty" << endl;
    else
        cout << x / y;
    return 0;
}
#endif

#if 0
/*输入重定向*/
#include<iostream>
using namespace std;
int main()
{
    double f;
    int n;
    freopen("t.txt", "r", stdin); // 输入重定向
    cin >> f >> n;
    cout << f << "," << n << endl;
    return 0;
}
#endif

#include<iostream>
using namespace std;

int main()
{
    int x;
    char buf[100];
    cin >> x;
    cin.getline(buf, 90); //碰到\n结束
    cout << buf << endl;
    return 0;
}

12 + ‘回车‘

12被CIN读进去了, getline()遇到回车立即结束,并添加了一个空字符 ‘\0’ ,所以输出一个空行。

原文地址:https://www.cnblogs.com/focus-z/p/11108056.html

时间: 2024-10-14 09:17:53

C++程序设计POJ》《WEEK7 输入输出和模板》的相关文章

C++程序设计POJ》《WEEK6 多态与虚函数》

问题: 虚函数都是同名 同参数表的吗? 虚函数和普通成员函数的区别 虚函数可以多态,其他不行 在构造函数和析构函数中调用 虚函数 不是多态 派生类还没有初始化好 MyCompare() qsort 怎么表示排序关系 虚函数表地址!! 虚函数?在类的定义中,前面有 virtual 关键字的成员函数就是虚函数.class base{ virtual   int get() }; int base::get(){ } virtual 关键字只用在类定义里的函数声明中,写函数体时不用.多态的表现形式一

C++程序设计POJ》《WEEK6 多态与虚函数》《多态的实现原理》《虚函数表》

“多态”的关键在于通过基类指针或引用调用一个虚函数时,编译时不确定到底调用的是基类还是派生类的函数,运行时才确定---- 这叫“动态联编”.“动态联编” 底是怎么实现的呢? #include<iostream> using namespace std; class Base { public: int i; virtual void Print() { cout << "base:print"; } }; class Derived :public Base {

C++程序设计POJ》《WEEK6 多态与虚函数》《编程填空》

#include <iostream> using namespace std; class A { public: A() { } virtual void func() { cout << "A::func" << endl; } virtual void fund() { cout << "A::fund" << endl; } void fun() { cout << "A::

PKU C++程序设计实习 学习笔记3 多态与虚函数

第六章 多态与虚函数 6.1 多态和虚函数的基本概念 引言 多态是面向对象程序设计里面非常重要的这个机制.它能很有效的提高程序的可扩充性. 有些程序设计语言有被对象继承的概念,但是没有多态的概念,那这样的程序设计语言只能被称作基于对象的程序设计语言,而不能称为面向对象的语言, 比方说visual basic. 虚函数 在类的定义中,前面有 virtual 关键字的成员函数就是虚函数. class base { <span style="color:#ff0000;">vir

GeekBand-secondweek-c++的多态和虚函数

多态与虚函数 13章的简单继承只是实现了对已有对象的实现的重定义和直接调用,但是向上映射导致的对象切割仍然是个缺陷: 1.延续13章的向上映射 简单继承中,派生类重定义了基类的成员函数,此时,向上映射的结果是很明显的,它使用了基类实现的函数版本,这显然并不是我们想要的效果:为什么会有这样的结果发生,我们先探讨几个问题: 函数调用绑定:函数调用确定目标函数体称为捆绑,编译期绑定称为早绑定,上面的问题就是早绑定引起的,因为编译器只知道基类对象的类型,调用函数也会绑定基类实现的函数版本,要解决这一问题

C++中的多态与虚函数的内部实现

1.什么是多态 多态性可以简单概括为“一个接口,多种方法”. 也就是说,向不同的对象发送同一个消息, 不同的对象在接收时会产生不同的行为(即方法).也就是说,每个对象可以用自己的方式去响应共同的消息.所谓消息,就是调用函数,不同的行为就是指不同的实现,即执行不同的函数.这是一种泛型技术,即用相同的代码实现不同的动作.这体现了面向对象编程的优越性. 多态分为两种: (1)编译时多态:主要通过函数的重载和运算符的重载来实现. (2)运行时多态:主要通过虚函数来实现. 2.几个相关概念 (1)覆盖.重

C++的多态与虚函数

多态性:对于同一消息,不同的对象由不同的响应方式 多态分为静态多态(编译时多态)和动态多态(运行时多态),动态多态通过虚函数来实现. 覆盖-->子类和父类中有同名同参数列表但是功能不同的函数叫做覆盖,在同一个类中有相同的是重复定义,不是覆盖. 虚函数的使用方法,如下: ①在基类中声明一个函数为虚函数,如: //基类vStudent class vStudent { public: vStudent(int,string); virtual void display();//虚函数,用来实现多态性

多态实现--虚函数与纯虚函数

多态实现--虚函数与纯虚函数 C++中实现多态是使用虚函数表的方法实现的. 那么具体怎么实现的呢? 举例说明 假设有这样一个多态场景: 有一个基类动物(animal类),动物里面又有两个派生类:猫(cat类)和狗(dog类).现在要求动物类有一个共同的方法:叫声(voice成员函数),但猫和狗叫声是不同的(即:它们的叫声实现方法不同). 那么代码怎么写呢? 多态的代码实现 #include <iostream> using namespace std; //1. 定义一个纯虚函数 class

C++ 多态与虚函数

1.多态的概念 由虚函数实现的动态多态性就是:同一类族中不同类的对象,对同一函数调用作出不同的响应. 先看下面这个简单的例子: #include<iostream> using std::cout; using std::endl; class A { public: void print(){cout << "I am A's print" << endl;} }; class B : public A { public: void print()

《C++编程思想》 第十四章 多态和虚函数 (原书代码+习题+讲解)

一.相关知识点 函数调用捆绑 把函数体与函数调用相联系称为捆绑(binding).当捆绑在程序运行之前(由编译器和连接器)完成时,称为早捆绑.我们可能没有听到过这个术语,因为在过程语言中是不会有的:C编译只有一种函数调用,就是早捆绑.上面程序中的问题是早捆绑引起的,因为编译器在只有 instrument地址时它不知道正确的调用函数.解决方法被称为晚捆绑,这意味着捆绑在运行时发生,基于对象的类型.晚捆绑又称为动态捆绑或运行时捆绑.当一个语言实现晚捆绑时,必须有一种机制在运行时确定对象的类型和合适的