C语言学习笔记:02_输入输出函数

/*
 * 02_输入输出函数.c
 *
 *  Created on: 2015年7月3日
 *      Author: zhong
 */
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
//#include "malloc.h"
/*
 * #include <math.h>
 * 与#include "malloc.h"导入头文件的区别
 * 作用:使用#include进行编译处理时,系统会将头文件的内容调出来放在此位置,取代本行的指令。
 * 区别:
 * 	使用#include <math.h>一般是导入编译系统的头文件
 * 	使用#include "malloc.h"一般是导入自己的头文件(一般在当前源文件目录),如果找不到,再到编译系统目录寻找
 *
 * 	如果自己编写的头文件不在当前目录中,可以在""中写出文件路径,如:#include "c:\temp\malloc.h"
 *
 */

//c语言函数库中有一批“标准输入输出函数”  导入头文件 stdio.h
//	char ch = getchar(); //输入字符
//	putchar(c); //输出字符
//	printf()   //格式化输出
//	scanf()    //格式化输入
//	puts()   // 输出字符串
//	gets()   // 输入字符串

//解方程 ax^2+bx+c=0
void x_way() {

	double a, b, c, x1, x2, p, q;

	printf("请输入数字a,b,c用空格隔开,然后回车\n");
	scanf("%lf%lf%lf", &a, &b, &c); //&a表示变量a在内存中的地址
									//scanf函数表示从终端中输入 的3个数据分别送到地址为&a,&b,&c的存储单元,即给a,b,c变量赋值
									//%lf表示输入的是双精度型实数
									//"%lf%lf%lf" 输入时出空格隔开,如果是"%lf,%lf,%lf" 输入时用,号隔开

	int _x = b * b - 4 * a * c; //满足b^2-4ac>=0才有解

	if (_x >= 0) {
		p = -b / 2.0 * a;
		q = sqrt(_x) / 2 * a;

		x1 = p + q;
		x2 = p - q;
		printf("x1=%7.2f\nx2=%7.2f\n", x1, x2); //7.2表示输出时,数据共占7列,小数占2列(可以控制小数点的输出)。

	} else {
		printf("输入的三个数对于方程无解\n");
	}
}

//printf()函数
void printf_method() {

	/**
	 * printf("格式控制",输出列表)
	 *
	 * 格式控制=格式声明+普通字符串
	 * 格式声名: 由% 和格式字符组成,如%d,%f
	 * 输出列表:是程序需要输出的一些数据,如常量,变量,表达式
	 *
	 * 格式字符:
	 * d 表示有符号的十进制整数
	 * ld 表示long 长整型
	 * lld 表示 long long双长整型
	 * c 用来输出一个字符
	 * s 用来输出一个字符串  如: printf("%s","CHINA");
	 * f 用来输出实数(包括单双数度,长双精度) ,以小数点的形式输出
	 *   1:%f 输入情况,只输出整数部分+6位小数 如:0.123456
	 *   2:%m.nf 描写数据宽度和小数宽度    如:%7.2f 输出数据占7列,小数占2位(对其后一位采用四舍五入) 1234.56
	 *
	 * lf %lf 长浮点型
	 *
	 * e E 用格式声名 %e指定以指数形式输出实数, e可大写,可小写
	 * 		%e :默认情况下, 输入输出小数部分6位,指数部分占5列 ,所输出实数占13gqj
	 *		%m.ne  %13.2e
	 *
	 * i 作用与d格式符号相同,按十进制整型数据的实际长度输出
	 * o  以八进制整数形式输出   输出的数值不带符号
	 * x X  以十六进制数形式输出整数
	 *     %lx 输出长整数   ,%12x 指定列宽
	 *
	 * u 用来输出无符号型数据
	 * g G 用来输出浮点数,系统自动选f格式或e格式输出
	 *
	 * 输出%,要使用两个%%
	 *
	 * 格式字符还可指定输出列数,
	 * 		 用%md   %5d 表示输出数据占5列,输出的数据显示在此5列的区域的右侧,即右对齐(前面不够5列左补空格)
	 * 		用%-md   %-5d,和%5d差不多,只是数据左对齐,不句右补空格
	 *
	 */
	printf("%d\n", 12); //12
	printf("%5ld\n", 12l); //   12 //指定位数
	long long ll = 12;
	printf("%5lld\n", ll); //   12 //指定位数
	printf("%-5d\n", 12); //12   , //左对齐
	printf("%f\n", 12.0); //12.000000 //浮点数
	printf("%6.2f\n", 12.0); // 12.00 指定小数位数,和总位数
	printf("%c\n", 97); //a 字符
	printf("%s\n", "ZHONG"); //ZHONG  字符串
	printf("%e\n", 123.456); //output 1.234560e+002 指数形式
	printf("%o\n", 1234); //2322  八进制
	printf("%x\n", 1234); //4d2  十六进制
}

//输入函数
void scanf_method() {
	/**
	 * scanf(格式控制,地址列表)
	 * 格式声名与print函数的差不多
	 *
	 * 地址列表应当是变量地址,而不是变量名  &a
	 * 输入时数据要与格式控制一样:
	 * 		如 "a=%f,b=%f,c=%f" 输入时:a=1,b=2,c=3
	 *  	如:"a=%f b=%f c=%f"是由空格隔开的,所以输入时要由两个或更多空格隔开,a=1  b=2  c=3  因为默认%f%f就是以一个空格隔开
	 *  	如:"%c%c%c" 空格字符和转义字符都会被当作输入,所以直接输入 abc即可,中间不必有其它字符
	 *  			输入数值时,两个数值之间要插入空格,以使系统区分
	 *  			输入字符时,不要插入空格
	 *  	如:"%d%c%f" 输入:123a123.0     12a 23.5
	 *
	 */

	int a;
	char c;
	float f;
	scanf("%d%c%f", &a, &c, &f); //123a123.0    12a 23.5
//	scanf("a=%d,c=%c,f=%f",&a,&c,&f);//a=1234,c=g,f=123.4
	printf("%d,%c,%f", a, c, f);

}

//字符数据的输入getchar() 输出putchar()
void character_int_out_put(){

	char a='A';
	a=65;
//	a=200; 超出了char 的0-127范围,所以打印?
	putchar(a); //字符输出函数  put character 作用相当于%c 将整数当字符输出
	putchar('\n');

	a=getchar(); //输入一个字符 ,不但能从键盘获取可见字符 如a,b 还会读取回车符。
	putchar(a);

//	printf("%c",getchar()); 直接格式化输出
}

//	puts()   // 输出字符串
//	gets()   // 输入字符串
void string_int_out_put(){
	char st [10];
	gets(st); //从键盘中获取字符并赋值给字符数组 st
	puts(st); //输出这个字符数组

}

int main2() {

//	x_way();
//	printf_method();
//	scanf_method();
//	character_int_out_put();
	string_int_out_put();

//	system("pause");
}


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值