c语言文本文件操作

来源:互联网 发布:知行论坛 编辑:程序博客网 时间:2024/06/12 23:59

C语言文件操作模式:

1) 文件使用方式由r,w,a,t,b,+六个字符拼成,各字符的含义是:
r(read): 读
w(write): 写
a(append): 追加
t(text): 文本文件,可省略不写
b(banary): 二进制文件
+: 读和写
2) 凡用“r”打开一个文件时,该文件必须已经存在,且只能从该文件读出。
3) 用“w”打开的文件只能向该文件写入。若打开的文件不存在,则以指定的文件名建立该文件,

若打开的文件已经存在,则将该文件删去,重建一个新文件。
4) a 打开只写文件,如果文件不存在,建立文件, 写入追加
5) 在打开一个文件时,如果出错,fopen将返回一个空指针值NULL。在程序中可以用这一信息来判

别是否完成打开文件的工作,并作相应的处理

==========================================================

1.逐行写入代码fputs

// 逐行写入代码fputsint main(int argc, char *argv[]){   const char ch[1024]="xiaoming\n";   const char ch1[1024]="小黑\n";   const char ch2[1024]="小邓\n";   FILE* p= fopen("D://temp//a.txt","w");   fputs(ch,p);   fputs(ch1,p);   fputs(ch2,p);   fclose(p);   printf("%s\n",ch);}

2.逐行读取代码feof、fgets

int main(int argc, char *argv[])
{
char ch[1024] = { 0 };
FILE* p = fopen(“D://temp//a.txt”, “r”);
while (!feof(p)){//如果没有到文件结尾,那么就一直循环
memset(ch, 0, sizeof(ch));
fgets(ch, sizeof(ch), p);
printf(“%s”, ch);
}
fclose(p);
system(“pause”);
}

**3. 逐行读取字符串加密、字符串解密**void code(char *s){while (*s)//遍历一个字符串{(*s)++;  // 文件的 加密,为每一个字符串都加1s++;}}void decode(char *s){while (*s)//遍历一个字符串{(*s)--;s++;}} int main03(){    char s[1024] = { 0 };    FILE *p = fopen("D:\\temp\\a.txt", "r");//用读的方式打开一个文件    FILE *p1 = fopen("D:\\temp\\b.txt", "w");//用写的方式打开一个文件    //feof(p);//如果已经到了文件结尾,函数返回真    while (!feof(p))//如果没有到文件结尾,那么就一直循环    {        memset(s, 0, sizeof(s));        fgets(s, sizeof(s), p);//第一个参数是一个内存地址,第二个参数是这块内存的大小,第三个参数是fopen返回的文件指针        code(s);//        fputs(s, p1);    }    fclose(p);    fclose(p1);    return 0;}int main04(){    char s[1024] = { 0 };    FILE *p = fopen("D:\\temp\\b.txt", "r");//用读的方式打开一个文件    FILE *p1 = fopen("D:\\temp\\c.txt", "w");//用写的方式打开一个文件    //feof(p);//如果已经到了文件结尾,函数返回真    while (!feof(p))//如果没有到文件结尾,那么就一直循环    {        memset(s, 0, sizeof(s));        fgets(s, sizeof(s), p);//第一个参数是一个内存地址,第二个参数是这块内存的大小,第三个参数是fopen返回的文件指针        decode(s);//        fputs(s, p1);    }    fclose(p);    fclose(p1);    return 0;}

4.逐字节读取: getc, 中文乱码

int main05(){    FILE *p = fopen("D:\\temp\\a.txt", "r");//用读的方式打开一个文件    char c = 0;    while ((c=fgetc(p)) != EOF){  //EOF代表文件最后的一个结束标示        printf("%c\n", c);    }    fclose(p);    system("pause");    return 0;}// 逐字节写入:  putcint main06(){    FILE *p = fopen("D:\\temp\\a.txt", "w");//用读的方式打开一个文件    if (p == NULL)    {        printf("error\n");    }    else    {        putc('a', p);        putc('b', p);        putc('c', p);        fclose(p);    }    system("pause");}
原创粉丝点击