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