Linux C语言学习笔记6

第六章 格式化IO函数+算术运算符+关系运算符

(1)printf函数
#include <stdio.h>
-----------------------标准输出函数------------------------
int printf(const char *format, …);
//功能:将指定的数据按照某种格式输出到屏幕
----------------------格式化IO函数------------------------
int fprintf(FIFE *stream, const char *fomat, …);
//功能:将指定的数据按照某种格式输出到文件(FIFE *stream文件指针)
int sprintf(char *str, const char *format, …);
//功能:将指定的数据按照某种格式输出到某一块内存
int snprintf(char *str, size_t size, const char *format, …);
//功能:将指定的数据按照某种格式输出到某一块内存,而且能指定该内存的大小
举栗子:

#include <stdio.h>
#include <stdlib.h>//使用malloc要包含的头文件
#include <unistd.h>//使用malloc要包含的头文件
int main()
{
	FILE *fp;
	//文件指针,fp指向名为‘FILE’的系统的大型结构体
	fp = fopen("a.txt","w");
	//fopen打开文件,‘a.txt’指定打开的文件,‘w’指定只写的打开模式,a.txt不存在则自动创建一个,存在则自动清空
	int i = 200;
	fprintf(fp, "%d", i);
	//把i的值200写入到文件a.txt中
	printf("%d\n", i);
	//把i的值200输出到屏幕
	fprintf(stdout, "%d\n", i);
	//把i的值输出到屏幕,stdout为标准输出,即输出到屏幕
	fclose(fp);//关闭文件
	/*********************************************************/
	char buf[32]; 
	char *p = malloc(32);
	snprintf(buf, 32, "%d", i);
	//将数据i输出到buf的内存中并指定buf最多能够存放32个字节,可防止溢出
	return 0;
}

(2)scanf函数
#include <stdio.h>
-------------------------标准输入函数----------------------
int scanf(const char *format, …);
//功能:按照指定格式从键盘输入数据
-------------------------格式化IO函数---------------------
int fscanf(FILE *stream, const char *format, …);
//按照指定格式从指定的文件中读取数据
int sscanf(const char *str, const char *format, …);
//按照指定格式从指定的内存中读取数据
举栗子:

#include <stdio.h>
int main()
{
    FILE *fp;
    //文件指针,fp指向名为‘FILE’的系统的大型结构体
    fp = fopen("a.txt","w");
    //fopen打开文件,‘a.txt’指定打开的文件,‘r’指定只读的打开模式,a.txt不存在则报错
    int j;
    fscanf(fp, "%d", &j);
    //读取fp指针所指向的文件里面是否有%d格式的字符,如果有则存放到j的地址上
    printf("j:%d\n", j);
    char buf[32];//定义内存buf
    int i = 300;
    snprintf(buf, 32, "%d", i);//将i的值写入buf中
    sscanf(buf, "%d", &j);
    //从内存buf中读取整型然后存到j中
    return 0;
} 

(3)算术运算符
运算符 功能 举栗子
+() 加法,一目取正 a + b
-(
) 减法,一目取负 a - b
) 乘法 a * b
/ 除法 a / b
% 取模(求余) a % b
++ 自减1 a++, ++a
– 自加1 a–, --a
---------------------------(***)---------------------------
+:一个操作数取正(+10 正10),左右有两个操作数时做加法运算
-:一个操作数取负(-a 负a),左右有两个操作数时做减法运算
*:在定义语句时为指针标记,只有一个操作数时为解引运算符,有两个操作数为乘法运算
---------------------------注意事项------------------------
1 两个整型相除的结果是整型,小数部分将被舍弃(不是四舍五入!)栗子:17/10的结果是1
2 取模运算符左右两边的操作数必须是整型(不仅是整数,栗子:3.0在数学意义上是整数3,但在计算机内是浮点型数据类型)
举栗子:

#include <stdio.h>
int main()
{
    int a = 100, b, c;
    b = ++a;
    //如果一个自加自减符出现在一个变量的前面,则称之为前缀,前缀的运算逻辑:先自加,然后参与运算
    printf("a:%d, b:%d\n", a, b);
    //a = 101, b = 101
    c = a++;//先参与运算,然后自加
    printf("a:%d, c:%d\n", a, c);
    //a = 102, c = 101
    return 0;
}

啰嗦:
1 自加自减可运用于所有基本数据类型
2 恶心的栗子(某些奇怪的面试题):
c = a+++b;
//正确的写代码是不能这样写的,可读性极差
(4)关系运算符
运算符 功能 举栗子

   大于        a > b

= 大于等于 a >= 5
< 小于 3 < x
<= 小于等于 x <= y+1
== 等于 x+1 == 0
!= 不等于 c != ‘\0’
由关系运算符构成的表达式称为关系表达式,关系表达式的值为布尔值

发布了6 篇原创文章 · 获赞 2 · 访问量 199
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览