首页 > 代码库 > C语言基础知识之综合案例(1)

C语言基础知识之综合案例(1)

1,在屏幕上显示信息。

  最常见的显示信息的方式是使用库函数printf()和puts()。


a,转义字符。



b,转移说明符。


printf()函数位于标准C语言库中,它是最通用的在屏幕上显示信息的方式。


#include<stdio.h>
void  main()
{
	//在屏幕上显示文本信息 very nice !
	printf("very nice !"); 
    
	//显示变量的值
	int number = 10;
	/*
	格式化字符串
	格式化字符串指定如火如荼格式输出,由以下三部分组成:
		字面文本:按输入方式显示。如下的字面文本为:The value of number is
		转义序列:提供特殊的格式化控制,由一个反斜杠和一个字符组成。如下转义序列为: \n(换行符,是移到下一行的开始位置)
	    转换说明符:由百分符(%)和一个字符组成。如下转换说明符为 %d(转换说明符 告诉printf()函数 如何解释要打印的变量,%d是按十进制)
	*/
	printf("\n The value of number is %d",number); //格式化字符串;包含要打印的值的变量名

	//printf("\a响铃"); //振铃
	//printf("\b退格");//退格
	//printf("\f换页");//换页
	printf("------分界线----\n");
	printf("\r回车");//回车                     
	/*
	 为什么加了回车上面2行的内容都不见了?因为回车是回到一行的开始,而并非移动下一行。
	 解决办法:printf("------分界线----\n"); 即在分界线后面加换行。
	*/
	printf("\t水平制表符");//水平制表符
	printf("\v垂直制表符");//垂直制表符
	printf("\\反斜杠"); //反斜杠
	printf("\?问号");//问号
	printf("\‘单引号");//单引号
	printf("\"双引号");//双引号
	printf("-----结束---");
	

	system("pause");
}
a,运行结果 1


b,运行结果 2



2,结合循环以及前面我们学过的基础知识 写一个案例。

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<time.h>
#include<Windows.h>
void choice_what();//定义原型
void goon_or_quit();//定义原型
void  main()
{
	goon_or_quit();

	system("pause");
}
//做出判断和选择
void choice_what()
{
		int temp = 0;
		printf("亲选择操作:");
		printf("响铃 1\n");
		printf("显示日期 2\n");
		printf("输出你的信息 3\n");
		scanf("%d", &temp);
		switch (temp)
		{
		case 1:
			printf("\a响铃了!");
			break;
		case 2:
			/*
			time_t rawtime;//时间类型
			struct tm * timeinfo;//时间结构
			time(&rawtime);//获取时间,以秒计,从1970年1月一日起算,存于rawtime 
			timeinfo = asctime(&rawtime); //localtime(&rawtime);转为当地时间,tm 时间结构asctime ()-- 转为标准ASCII时间格式:星期 月 日 时:分:秒 年
			printf("\007The current date/time is: %s", asctime(timeinfo));*/
			//system("date\n");
			system("@echo %date% %time%");             
			break;
		default:
			printf("(*^__^*) 嘻嘻……,我们都是好孩子!");
		}
}
void goon_or_quit()
{
	int mark =1;//初始化mark变量,标记
	do
	{
		choice_what();
		printf("是否继续?\n");
		printf("继续 1\n");
		printf("退出 0\n");
		scanf("%d", &mark);

	} while(mark);
	exit(0);
}


运行结果



 printf()函数接受一系列的参数,其中每个参数应于格式化字符串的一个转换说明符。
printf()将格式化后的信息打印到标准输出设备。使用printf()时,需包含标准输入/输出
头文件stdio.h。

  
使用puts()显示信息


#include<stdio.h>
/*
常用的转换说明符
*/
void main()
{
	char a_char = ‘a‘;
	printf("%c\n", a_char);
	int  a_int = -9;
	short a_short = -9;
	printf("%d\n", a_int);
	printf("%d\n", a_short);
	long a_long = -10000l;
	printf("%ld\n",a_long);
	float a_float = 100.65f;
	double a_double = 100.65;
	printf("%f\n", a_float);
	printf("%d\n", a_double);
	char a_chars[17] = { "我们都是好孩子!" };//注意:一个汉字为2个字节,!和“”分别为一个,则17=14+3
	printf("%s\n", a_chars);
	unsigned int a_uint = 9;
	unsigned short a_ushort = 9;
	printf("%u\n", a_uint);
	printf("%u\n", a_ushort);
	unsigned long a_ulong = 10000;
	printf("%lu\n", a_ulong);
	printf("----------------------错误类型分割线---------------------------\n");
	printf("错误的类型:");
	unsigned short a_ushort_e1 = -9;
	printf("%u\n", a_ushort_e1);
	printf("错误的转换说明符:");
	unsigned short a_ushort_e2 = -9;
	printf("%u\n", a_ushort_e2);
	puts("------------------puts分割线-----------------");
	/*
	函数puts()也可用来在屏幕上显示文本消息,但它不能显示数值变量。puts()函数接受一个
    字符串参数,显示该参数并自动换行。

	当只需要打印文本,不需要打印变量时,用puts()而不是printf()
	
	*/
	puts("使用puts()函数显示信息:");
	puts("使用puts()函数显示信息:\n");
	system("pause");
}


运行结果



3,使用scanf()函数输入数值数据。



从键盘读取数值数据的最灵活的方法就是使用库函数scanf()。
函数scanf()按指定的格式从键盘读取数据,并将其赋给一个或多个变量。和printf()一样,scanf()也
使用一个格式化字符串描述输入的格式,改格式化字符串使用的转换说明符与printf()函数相同。

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
/*
使用scanf获得键盘输入的信息
*/
void main()
{
	int temp1 = 0;
	double  temp2 = 1.09;
	//这里注意转换说明符, double 类型 要用%lf
	scanf("%d %lf", &temp1, &temp2);    

	printf("%d,%f",temp1,temp2);
	system("pause");
}


运行结果



经验:
 printf()的功能强于puts(),但开销也更大。编写小型、高效的程序,或程序很大、资源变得非常宝贵

时,就要充分利用puts()的开销更小这一优点。