>[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