文件操作&字符串操作

底层文件操作

 

标准文件操作

C语言 打开二进制文件失败 错误信息怎么打印?

fprintf:C 库函数 int fprintf(FILE *stream, const char *format, ...) 发送格式化输出到流 stream 中。

#include<stdio.h>
char *fgets(char *s, intsize, FILE *stream);
char *gets(char *s);
返回值:成功时s指向哪返回的指针就指向哪,出错或者读到文件末尾时返回NULL
fgets从指定的文件中读一行字符到调用者提供的缓冲区中
gets从标准输入读一行字符到调用者提供的缓冲区中,转变成字符串(加'\0')。
没有指定目标缓冲区的大小。
 
fgets  和  gets 的区别:

fgets  :

1.有缓冲区长度限制在。输入超出缓冲区长度时,截断至缓冲区长度减一个字符,在最后一个位置加'\0';输入在缓冲区长度以内,直接在'\n'后边加'\0'。

2.改变输入。fgets操作文本文件没有问题,文本文件没有'\0',所以出现'\0'肯定是fgets给加的。但是二进制文件就不适合了。

gets :

1.去除'\n'

2.加'\0'

 1 #include <stdio.h>
 2 
 3 int main()
 4 {
 5         char buf[6];
 6         gets(buf);
 7         printf("%s", buf);
 8 
 9         return 0;
10 }

打印结果:

[root@localhost test]# ./a.out
1234
1234[root@localhost test]# ./a.out

 

fread 和 fwrite

posted @ 2021-04-02 19:30  IT_Jhon  阅读(80)  评论(0)    收藏  举报