c语言文本文件,c语言文本文件操作

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

// 逐行写入代码fputs

int 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)++; // 文件的 加密,为每一个字符串都加1

s++;

}

}

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;

}

// 逐字节写入: putc

int 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");

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值