C语言文件操作

fopen()
fgetc()
fputc()

读取文件

判断文件结束,EOF 宏 文本文件,feof 函数文本文件及二进制文件

// fgetc读取一个字符
void fgetc_demo(){
    FILE *fp = NULL;
    fp = fopen("./a.txt","r");

    if (fp == NULL)
    {
        perror("error");
    }

    while (1)
    {
        char ch = 0;
        ch = fgetc(fp); //  读取字符到ch

        if (feof(fp))// 检测是否到文件末尾,非0则已经到文件末尾,0则没有到文件末尾
        {
            break;
        }
        printf("ch=%c\n",ch);    
    }        
}


写入文件

fgets() 获取一行

从stream指定的文件内读入字符,保存到str所指定的内存空间直到出现换行符、读到文件结尾或是已经读了size-1个字符为止,最后会自动加上字符“\0”结束。

// 终端获取输入写入文件


void fgets_demo(char *fileName){
    FILE *fp = NULL;
    fp = fopen(fileName,"w");
    if (fp==NULL)
    {
        perror("fopen");
        return;
    }

    while(1)
    {
        char buf[128] = "";
        fgets(buf,sizeof(buf),stdin);

        if (strncmp(buf,":quit",5) == 0)
        {
            break;
        }

        int i = 0;
        while(buf[i] != 0) {
            fputc(buf[i],fp);
            i++;
        }
    }
    fclose(fp);
}
int main(int argc, char *argv[]){
    char *fileName;
    if (!argv[1])
    {
        fileName = "default.txt";
    }else{
        fileName = argv[1];
    }
    fgets_demo(fileName);
    system("pause");
    return 0;

}