>[danger] fgetc字符输入函数。就是把字符从其他输入到程序中来。<stdio.h>
**int fgetc(****FILE****\****stream***);//函数原型**
**只有一个参数,就是被打开文件对应的文件流。**
**返回值是所读取到字符的ASCII值。类型是 int。如果读取失败或者文件结束,就会返回EOF。**
```
#include<stdio.h>
int main()
{
//打开文件
FILE* pf1 = fopen("test.txt", "r");
//判断是否打开文件成功
if (NULL == pf1)
{
perror("fopen");
return 1;
}
//读文件
int c = 0;
c = fgetc(pf1);
printf("%d\n", c);
printf("%c\n", c);
//关闭文件
fclose(pf1);
pf1 = NULL;
return 0;
}
```
>[danger]fputc:字符输出函数,就是把字符从程序输出到其他中
int fputc(int c,FILE ***stream);//函数原型**
第一个参数是欲输出字符的ASCII值。
第二个参数是打开文件的流。
返回是欲输出字符的ASCII值,如果输出失败返回EOF
```
#include<stdio.h>
int main()
{
//打开文件
FILE* pf1 = fopen("test.txt", "w");//注意用"w"打开的时候会清空文件里面存放的数据
//判断是否打开文件成功
if (NULL == pf1)
{
perror("fopen");
return 1;
}
//写文件
printf("%c", fputc('z', pf1));
//关闭文件
fclose(pf1);
pf1 = NULL;
return 0;
}
```
>[danger] fgets:文本行输入函数,从其他到程序
char *fgets( char *string, int n, FILE *stream );
第一个参数:输入的文件存放的位置。
第二个参数:最大输入数n(只能输入n-1个数最后一个要写'\0'。
第三个参数:所打开文件的流
返回值是:存放数据数组的地址。错误或者遇到文件结束标志就会返回NULL。
```
int main()
{
//打开文件
FILE* pf = fopen("test.txt", "r");
//判断是否打开文件成功
if (NULL == pf)
{
perror("fopen");
return 1;
}
//读文件
char str[20];
printf("%s\n", fgets(str, 20, pf));
printf("%s\n", str);
//关闭文件
fclose(pf);
pf = NULL;
return 0;
}
```
>[danger] fputs:文本行输出函数,从程序到其他**
int fputs(const char *string,FILE *stream);
第一个参数:数据来源
第二个参数:输出流
返回:如果成功,这些函数中的每一个都返回一个非负值。发生错误时,fputs 返回 EOF。
```
#include<stdio.h>
int main()
{
//打开文件
FILE* pf = fopen("test.txt", "w");
//判断是否打开文件成功
if (NULL == pf)
{
perror("fopen");
return 1;
}
//写文件
char str[] = "zhangxuefeng";
//fputs(str, pf);
printf("%d\n", fputs(str, pf));
//关闭文件
fclose(pf);
pf = NULL;
return 0;
}
```
>[danger] fprintf:格式化的输出函数,从程序到其他
int fprintf( FILE *stream,const char *format [,argument]...);
第一个参数:流。
第二个参数:格式化的数据。
返回写入的字符数,当发生输出错误时,这些函数中的每一个都返回负值
```
typedef struct sss
{
int a;//4
char str[10];//1
float b;//4
}sss;
#include<stdio.h>
int main()
{
//打开文件
FILE* pf = fopen("test.txt", "w");
if (pf == NULL)
{
perror("fopen");
return 1;
}
//输出数据
sss ret = { 1,"zhang",99.9f };
//fprintf(pf, "%d %s %f", ret.a, ret.str, ret.b);
printf("%d", fprintf(pf, "%d %s %f", ret.a, ret.str, ret.b));
//关闭文件
fclose(pf);
pf = NULL;
return 0;
}
```
>[danger] fscanf:格式化输入函数,从其他到程序。
int fscanf( FILE *stream, const char *format [, argument ]... );
第一个参数:流。
第二个参数:格式化的数据,此参数和scanf函数相同。
返回值:实际读取数据的个数。如果遇到文件结束或者读取失败会返回EOF。
```
#include<stdio.h>
int main()
{
//打开文件
FILE* pf = fopen("test.txt", "r");
if (pf == NULL)
{
perror("fopen");
return 1;
}
//输入数据
sss ret = {0};
printf("%d\n", fscanf(pf, "%d %s %f", &(ret.a), ret.str, &(ret.b)));
printf("%d\n", ret.a);
printf("%s\n", ret.str);
printf("%f\n", ret.b);
//关闭文件
fclose(pf);
pf = NULL;
return 0;
}
```
- 空白目录
- 第一章 c语言简介
- 1 通俗地理解什么是编程语言
- 2 C语言究竟是一门怎样的语言
- 第二章 算法简介&基本语法
- 1 算法简介
- 2 C 程序结构
- 3 C 基本语法
- 第三章 数据类型
- 1 数据类型
- 2 变量
- 3 常量
- 第四章 运算符
- 1 算术运算符
- 2 关系运算符
- 3 逻辑运算符
- 4 位运算符
- 5 赋值运算符
- 6 杂项运算符(其他运算符)
- 7 c语言中的运算符优先级
- 第五章 控制流
- 1 判断语句
- 2 switch语句
- 3 循环语句
- 4 流程控制相关案例
- 第六章 指针
- 1 c语言指针概述
- 2 指针的算术运算
- 3 指针数组
- 4 指向指针的指针
- 5 传递指针给函数
- 6 从函数返回指针
- 第七章 函数
- 1 函数的语法
- 2 作用域规则
- 3 形参与实参
- 第八章 数组
- 1 C语言中的数组
- 2 多维数组
- 3 传递数组给函数
- 4 从函数返回数组
- 第九章 指针
- 1 分钟彻底理解C语言指针的概念
- 2 C语言指针变量的定义和使用
- 3 C语言指针变量的运算(加法、减法和比较运算)
- 4 C语言数组指针(指向数组的指针)
- 5 C语言字符串指针(指向字符串的指针)
- 第十章 结构体
- 第十一章 练习
- 第十二章 文件操作
- 第十三章 文件操作2