/*
* 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");
}
C语言学习笔记:02_输入输出函数
最新推荐文章于 2024-03-15 09:54:27 发布