c++程序设计答案 第一章 c++语言与面向对象概述,2020.4.22第一章C++与面向对象程序设计概述1...

课本:电子工业出版社《C++面向对象程序设计(第3版)》 杜茂康等著

头文件

传统 C++的头文件有 :iostream.h、fstream.h、string.h,stdio.h、ctype.h、math.h。

标准 C++对应的头文件有 :iostream、fstream、string,cstdio、cctype、cmath。 其中,stdio、ctype、math 是来源于 C 库文件。

输出控制符

设置浮点数的精度

所在头文件:iomanip

使用函数:setprecision(n)

使用范围:一直有效,直到再次用setprecision改变输出精度为止。

示例:

cout<

运行结果:

3.1 3.14

设置输出域宽和对齐方式

所在头文件:iomanip

使用函数:setw(n)

适用范围:仅对紧随其后的一个输出数据有效。

默认输出对齐方式:右对齐

示例:

cout<

cout<

cout<

运行结果:

123456781234567890

23.27 78

Abc78

设置对齐方式

所在头文件:iomanip

使用函数:setiosflags()与resetiosflags()

对齐:

左对齐:setiosflags(ios::left)

右对齐:setiosflags(ios::right)

适用范围:一直有效直到下一个setiosflags或者resetiosflags出现。

示例:

cout<

cout<

cout<

运行结果:

123456781234567812345678

456 123

123

数制基数

在输入数据时:

十进制:cin>>直接输入数据本身

十六进制:cin>>hex>>在要输入的数据前加入0x或者0X,如0x1A

八进制:cin>>oct>>在输入的数据前加0,如043

在输出数据时:

十进制:dec<<

十六进制:hex<<

八进制:oct<<

作用范围:一直有用直到下一个进制命令出现

示例:

int x = 34, y, z;

cout << hex << x << "\t"<

cin >> hex >> y>> oct >> z;

cout <

运行结果:

223442

0x11↙ 011↙

179

关于string

string对象的定义和初始化

所在头文件:string

定义形式

string c;

string c1("Chloe-fengtt");

string c2 = c1;

string s[10]; //能保存十个字符串

string s(5,'c'); //即为"ccccc"

赋值

赋值可以不用strcpy()函数。

string s1("Chloe");

string s2("feng-tt");

s1 = s2;

连接

可以用"+"和"+="。

string s1("Chloe");

string s2("feng-tt");

string s3;

s3 = s1 + "," + s2;

s1 += "," + s2;

输入输出

可以直接使用cin,cout。

大小比较

使用比较运算符

从第一位开始,依次比较每一位的ASCII码大小,如果出现某一位不相等,就以这一位的大小来确定字符串的大小。

如“ace”与“abc”,c>b,故“ace”>“abc”。

如果每一位都相等,只是长度不同,则较长者大。

如"computer"和"comp","computer">"comp"。

数据输入的典型问题

输入数据类型不匹配引发的问题

如何为变量输入空白字符?

用get()函数输入空白字符

此空白符包括tab,空格键,回车键等方式输入的空白格

cin.get(char c);

用getline()函数输入包含空白的长字符串

结束输入的方法:

输入流中的字符数多余getline()指定的个数,它从输入流中读够了n-1个字符。

遇到指定的结束符号

cin.getline(char *s1,int n,char = "\n"); //c用来保存输入的数据,n指字符串长度,第三个参数指定了提取数据的结束符(默认“\n”)

getline()没有读取输入的数据就结束了?

输入流中的字符多于getline()所需要的字符数

cin.clear函数:

对我来讲还是有点深奥,就不摘了:cin.clear()函数

cin.ignore函数:

cin.ignore(a,ch)方法是从输入流(cin)中提取字符,提取的字符被忽略(ignore),不被使用。每抛弃一个字符,它都要计数和比较字符:如果计数值达到a或者被抛弃的字符是ch,则cin.ignore()函数执行终止;否则,它继续等待。它的一个常用功能就是用来清除以回车结束的输入缓冲区的内容,消除上一次输入对下一次输入的影响。

#include

using namespace std;

void main(){

char s1[100];

char s2[10];

cout << "use getline input s1: "; // L1

cin.getline(s1, 11); // L2

cout << "input s2: " << endl; // L3

// cin.clear(); // L4*

// cin.ignore(1024,'\n'); // L5*

cin.getline(s2, 6); // L6

cout << "s1=" << s1 << endl; // L7

cout << "s2=" << s2 << endl; // L8

}

getline()提取了上一条语句遗留的“\n”结束符,不再读入数据的问题

getchar()、get()函数和ignore()都可以解决问题。

标签:字符,string,22,2020.4,cout,cin,C++,输入,函数

来源: https://www.cnblogs.com/Chloe-fengtt/p/12755917.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值