day 3标准IO的读写(字符、行)

读写单个字符

 字符的输入(读取单个字符):

int fgetc(FILE *stream);
int getc(FILE *stream); //宏
int getchar(void);

成功时,返回读取的字符;若文件末尾或出错时返回EOF(-1)),

getchar()等同于fgetc(stdin);getc和fgetc区别是一个是宏一个是函数

注意事项:

1、函数返回值是int类型不是char类型,主要是为了扩展返回值的范围。

2、stdin 也是FILE* 的指针,是系统定义好的,指向的是标准输入(键盘输入);

3、打开文件后读取,是从文件开头开始的。读取完一个后读写指针会后移。读写注意文件位置!

4、调用getchar会阻塞,等待键盘输入;

字符的输出(写单个字符)

int fputc(int c, FILE *stream);
int putc(int c, FILE *stream);
int putchar(int c);

 成功时返回写入的字符,出错时返回EOF;

putchar(c)等同于fputc(c,stdout)

注意事项:

1、返回和输入参数都是int类型;

2、遇到这种错误:Bad fiile descriptor, 很有可能是文件打开的模式错误(只读模式去写或者只写模式去读等);

行输入(读取整行)

char *get(char *s);  读取标准输入到缓冲区s
char *fgets(char *s, int size, FILE *stream);

 成功时返回s,到文件末尾或出错时返回NULL;

遇到'\n'或已输入size-1个字符时返回,总是包含‘\0‘

注意事项:

1、gets函数已经被淘汰,因为会导致缓冲区溢出;

2、fgets 函数第二个参数,输入的数据超出size ,size-1个字符会保存到缓冲区,最后添加'\0',如果输入数据少于size-1后面会添加换行符。

行输出(写整行)

int puts(const char *s);
int fputs(const char *s, FILE *stream);

成功时返回非负整数;出错时返回EOF;

puts将缓冲区s中的字符串输出到stdout,并追加‘、'\n'

fputs将缓冲区s中的字符串输出到stream,不追加'\n'

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值