《C++从入门到精通》实例--输入和输出

              《C++从入门到精通》实例--输入和输出

//范例1:标准输入输出示例
//知识点:标准输入输出
//2018.3.27

#include <iostream>
#include <string>
using namespace std;
int main(int argc, char* argv[])
{
	cout << "Hello World" << endl;
	
	int i;
	cin >> i;       //输入i值
	cout << "i=\t" << i << endl;  //表达式中的"\t"表示横向跳格
	
	char *p = "abc";   //字符指针
	cout << p << endl;          //输出字符指针p所指向的字符串
	
	string s;
	cin >> s;
	if (s.empty() == true)
		cerr << "string is empty" << endl;
	system("pause");
	return 0;
}
//范例2:常用流状态
//知识点:常用的流状态
//2018.3.27
/*showpos:在整数和零前显示+号
  showbase:十六进制整数前加0x,八进制整数前加0
  showpoint:浮点输出,即使小数点后都是零也加小数点
  left:左对齐,右边填充字符
  right:右对齐,左边填充字符
  dec:十进制显示整数
  oct:八进制显示整数
  hex:十六进制显示整数
  fixed:定点数格式输出
  scientific:科学计数法输出
  */
#include <iostream>
#include <string>
using namespace std;
int main(int argc, char* argv[])
{
	cout << showpos << 123 << noshowpos << endl;                  //输出123前面的“+”号,再取消该状态
	cout << hex<<18<<" "<<showbase<<12<<noshowbase<<dec<<endl;    //输出十六进制标志“0x”,再取消该状态
	cout << 123.00 <<" "<<showpoint<<123.00<<noshowpoint<< endl;  //输出小数点后的零
	cout << fixed << 123.456 << endl;                             //定点数格式输出
	cout << scientific << 123.456 << endl;                        //科学计数法输出
	system("pause");
	return 0;
}
//范例3:行输入get函数的使用
//知识点:行输入
//2018.3.27
//istream的成员函数get()的功能是一次读入一个字符,对空白字符,如空格、回车、制表符和换行符等一并读入。有以下3种形式。
//另外还有getline()和read()函数
#include <iostream>
#include <string>
using namespace std;
int main(int argc, char* argv[])
{
	//第一种形式:int get(),功能:读取一个字符,返回类型是整型
	int ch1;                      //声明整型变量ch
	ch1 = cin.get();              //使用get函数接收输入字符,并存在ch1中,赋值符号两边无类型转换
	cout << ch1 << endl;          //输出ch1,输入字符"a",因为get()返回整型,所以输出ch1值为ASCII码97
	//第二种形式,istream &get(char &ch),功能:读取一个字符,包括空白符,并将它存储到ch中。它返回被应用的istream对象
	char ch2;
	cin.get(ch2);                //输入字符ch2
	cout << ch2 << endl;           //输出字符ch2
	//第三种形式,istream &get(char *str,int length,char delimiter='\n')
	//功能:str代表一个字符数组,用来存储读取到的字符。length代表可以读取字符数量的最大值。delimiter的默认是"\n",用于指定一个特定的字符,当遇到该字符时,就会停止读入。delimeter本身不会被读入。
	const int length = 1024;          //定义常量length
	char str[length];                 //声明字符数组
	cin.get(str, length, 'A');        //输入字符数组
	cout << str << endl;              //输出字符数组
	system("pause");
	return 0;
}
//范例4:行输出put()函数的使用
//知识点:行输出
//2018.3.27
//put()的作用是输出一个字符,格式:ostream &cout.put(char ch);
#include <iostream>
#include <string>
using namespace std;
int main(int argc, char* argv[])
{
	char str[6] = "Hello";
	cout.put('A');       //输出字符A
	cout.put('\n');      //输出字符回车换行
	cout.put(str[0]);    //输出字符'H'
	cout << endl;
	system("pause");
	return 0;
}
//范例5:行输出write()函数的使用
//知识点:行输出
//2018.3.27
//write()的作用是输出一个指定长度的字符串,格式:ostream &cout.write(char *str,int length)
#include <iostream>
#include <string>
using namespace std;
int main(int argc, char* argv[])
{
	char *str = "Hello";
	cout.write(str, strlen(str)) << endl;     //测试字符串的长度,以该长度输出字符串
	cout.write("Hello World", 6) << endl;     //输出字符串的前6个字符
	system("pause");
	return 0;
}
//范例5:printf()函数的使用
//知识点:输出
//2018.3.27

#include <stdio.h>
#include <string>
using namespace std;
int main(int argc, char* argv[])
{
	//d格式符,用来输出十进制整数
	//%d:按十进制整数数据的实际长度输出
	//%md:m为指定的输出字段的宽度。如果数据的位数小于m,则左端补以空格;若大于m,则按实际位数输出
	int x = 315, y = 1860;
	printf("%2d,%5d\n", x, y);
	//u、o、x格式符,分别用来输出无符号整数,八进制、十六进制形式整数。因为八进制和十六进制都是不带符号的,所以和无符号数一样,符号位也一起作为数据的一部分输出
	int a = -1;                             //整数在内存中是以补码形式存储的
	printf("%d,%u,%o,%x\n", a, a, a, a);
	//c格式符,用来输出一个字符
	char c = 'a';
	printf("%c\n", c);
	//s格式符,用来输出字符串
	//%-m.ns:表示输出字符串共占m列,n表示从左侧开始截取原字符串n个字符,"-"负号表示截取的n个字符输出在m列的左侧,右补空格,也就是左对齐,若n>m,则m自动取n值
	char *s = "abcde";
	printf("%s,%2s,%6.2s,%.2s,%-6.2s,\n", s, s, s, s, s);
    //f格式符,用来以小数形式输出实数
	//%f不指定字段宽度,由系统自动指定字段宽度,使整数部分全部输出,并输出6位小数(VC++ 6.0默认输出6位)。
	//注意:在输出的数字中并非全部数字都是有效数字。单精度实数的有效位数一般为6或7位,双精度一般为15或16位。
	//%m.nf表示输出数据所在列数(包括小数点所在列),n表示截取的小数位数。如果n数值长度小于m,则左端补空格,即右对齐
	//%-m.nf表示左对齐
	float f = 12.345;
	printf("%f,%5f,%5.f,%.2f,%5.2f,%-5.2f\n", f, f, f, f, f, f);
	system("pause");
	return 0;
}

 

//范例6:使用字符串
//知识点:字符串操作
//2018.3.27

#include <iostream>
#include <string>
using namespace std;

int main(int argc, char* argv[])
{
	//使用string类型的好处:字符串相关的内存可以被自动管理,而C语言字符串需要先声明足够大的存储空间才能读入字符串
	string str;       //定义字符串类型变量
	cin >> str;       //输入字符串,回车为结束标志
	cout << str << endl;  //输出
	system("pause");
	return 0;
}
//范例7:输出菱形
//知识点:字符串操作
//2018.3.27

#include <iostream>
#include <string>
using namespace std;

int main(int argc, char* argv[])
{
	char c;
	cin.get(c);                     //获取输入字符
	int i;
	for (i = 0; i < 10; i++)
	{
		cout << string(9 - i, ' ') << string(i, c);    //输出空格字符串和i个字符c
		if (i >= 1)                                    //string的第一个参数不能为负数
			cout << string(i - 1, c) << endl;
		else
			cout << endl;
	}
	for (i = 9; i >= 0; i--)
	{
		cout << string(9 - i, ' ') << string(i, c);    //输出空格字符串和i个字符c
		if (i >= 1)                                    
			cout << string(i - 1, c) << endl;
		else
			cout << endl;
	}

	system("pause");
	return 0;
}

//综合运用:猜数字游戏,随机生成一个0到9之间的任意整数作为被猜数字,循环输入你猜的数字,告诉你猜大了还是猜小了,直到猜中,同时统计猜的次数
//知识点:输入和输出
//2018.3.27

#include <iostream>
#include <string>
#include <time.h>
using namespace std;
#define MAX 10
int main(int argc, char* argv[])
{
	bool b = false;
	int n;              //所猜的数字
	int sum = 0;        //猜数的次数
	srand((unsigned)time(NULL));     //随机数播种函数
	int num = rand() % MAX;          //设定随机数
	cout << "随机数已经准备好,范围0到9." << endl;
	while (b == false)
	{
		sum += 1;
		cout << "请输入你猜的数字:" << endl;
		cin >> n;
		if (n == num)
		{
			b = true;
			cout << "你太聪明啦!" << endl;
			cout << "你共猜了" << sum << "次" << endl;
		}
		else if (n < num&&n >= 0)
		{
			cout << "你猜小了!继续努力!" << endl;
		}
		else if (n > num&&n <= 9)
		{
			cout << "你猜大了!继续努力!" << endl;
		}
		else
		{
			cout << "数字范围是0到9,你输出的越界了!" << endl;
		}
	}

	system("pause");
	return 0;
}

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值