一定要注意代码格式!(重要的话说在前面,不讲道理就让你wa到死)
单个字符的读取:
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE *fp = fopen("test1.txt", "r");
if(fp == NULL)
{
printf("open test.txt file failed\n");
exit(0);
}
char ch;
while ((ch = fgetc(fp)) != EOF)
putchar(ch);
fclose(fp);
return 0;
}
单个字符的写入:
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE *fp = fopen("test1.txt", "w");
char ch;
if(fp == NULL)
{
printf("open test.txt file failed\n");
exit(0);
}
while ((ch=getchar())!='\n')
fputc(ch,fp);
fclose(fp);
return 0;
}
数组或者结构体的一次读取:
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE *fp1;
int i;
struct student
{
char name[10];
int age;
char addr[15];
}stu;
if((fp1=fopen("test2.txt","rb"))==NULL)
{
printf("不能打开文件");
exit(0);
}
printf("读取文件的内容如下:\n");
for (i = 0; i < 2; i++)
{
fread(&stu,sizeof(stu),1,fp1);
printf("%s %d %s\n",stu.name, stu.age, stu.addr);
}
fclose(fp1);
return 0;
}
对数组或者结构体的一次写入:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i;
struct student
{
char name[10];
int age;
char addr[15];
}stu;
FILE *fp1 = fopen("test2.txt", "wb");
if(fp1 == NULL)
{
printf("不能打开文件");
exit(0);
}
printf("请输入信息:\n姓名 年龄 地址:\n");
for(i = 0; i < 2; i++)
{
scanf("%s %d %s", stu.name, &stu.age, stu.addr);
fwrite(&stu, sizeof(stu), 1, fp1);
}
fclose(fp1);
return 0;
}
有一点要注意一下,在你读取同一个文件下的时候有可能会出现中文乱码的情况,这种情况下在我实践下有两种解决方式,一种是
可以将读取的文件内容存入到一个新文件中,还有一种是要在读取的时候把“rb”格式改为“rb+”。