- fopen(), open file
函式原型: FILE * fopen(const char *file, const char *mode)
輸入參數有兩個,一個為file的名稱,一個為開啟file的模式
mode 的主要輸入參數如下:
'r': Open for reading
'w': Open for writing
'a': Open for appending
'w': Open for writing
'a': Open for appending
mode 的次要輸入參數如下:
'+': Open for reading and writing
'f': No delay
'b' Open in binary mode
'f': No delay
'b' Open in binary mode
- fgetc(), 一次讀取一個字元
函式原型: int fgetc(FILE *fp)
這邊要注意的是fgetc所回傳的是一個int的型態,每當執行一次,file指標就會+1,也就是說下一次再執行fgetc,就會得到下一個字元
- fgets(), 一次讀取一行字串
函式原型: char * fgets(char *buf, int n, FILE *fp)
函式原型: char * fgets(char *buf, int n, FILE *fp)
每當執行結束後,file指標會一直+1直到遇到 '\n' 就停止,原因是因為換行符號為'\n'
Example:
Hello.txt:
Hello world for fgets!! Hello world for fgetc!!
Result:
Example:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char **argv)
{
FILE *Sc;
int ch=0;
char str[100]={0};
//Open file and check whether file existed
if((Sc = fopen("Hello.txt", "rt")) == NULL)
{
printf("Error Openning File!!\n");
return 1;
}
//Fetch one line by fgets
fgets(str, sizeof(str), Sc);
printf("%s", str);
//Fetch one character by fgetc
while(!feof(Sc)) {
ch = fgetc(Sc);
printf("%c", ch);
}
//Close File
fclose(Sc);
printf("\n");
system("pause\n");
return 0;
}
Hello.txt:
Hello world for fgets!! Hello world for fgetc!!
Result:
沒有留言:
張貼留言