C简单文件操作。。
话说今天考了C语言的试,各种用文件读写神马的。哥都忘了神马文件读写了。于是前一小时各种想,不过这一小时做的最多是ctrl + alt + delete结束vc++6.0 尼玛我以无力吐槽这神马考试,大头机,vc编译两次就完蛋必须结束进程才能启动。这是考试吗,机房还一股臭脚丫子味,多少年不打扫了。这是练习ctrl + alt + delete命令吧。 哥实在没办法了全部用freopen写的,管他对不对的。哎....伤不起啊。回来还晕的我吐了,晕车的滋味要死啊。
回来就看了看这些简单的函数,话说哥想对了,可是考试的时候怎么数据就是读不出来呢,无语。。。
#include <stdio.h> #include <string.h> typedef struct node { int id; char name[22]; char sex[2]; }node; node stu[107],st[107]; void main() { int i; char str[107]; char ch; FILE* fp = fopen("d.txt","w+"); //FILE* fp = fopen("d.dat","r"); if (fp == NULL) { printf("无法打开"); } else { // fputc(ch,fp) ch = fgetc(fp) 用法 /* scanf("%c",&ch); while (ch != '\n') { fputc(ch,fp); scanf("%c",&ch); } rewind(fp);//使文件内部指针指向文件开头 fseek(fp,2,0);//相对于0偏移2个位置以后的内容 ch = fgetc(fp); while (ch != EOF) { printf(">>>>%c",ch); ch = fgetc(fp); } */ //fputs(str,fp) fgets(str,n,fp)的用法 /* scanf("%s",str); fputs(str,fp); rewind(fp); fgets(str,5,fp);//从文件里读出4个字符 printf("%s\n",str); */ /* fread(pBuffer,size,count,pFile); fwrite(pBuffer,size,count,pFile); 要读写一个数据块的话,无论是读还是写,都需要指定一个起始地址, 读的话从这个起始地址读,写的话从这个起始地址写,上面函数定义中 的第一个参数pBuffer就是用于指定这个起始地址,size读写的字节数, count则指定读写多少个size大小的数据,pFile是文件结构指针。 */ /* for (i = 0; i < 3; ++i) { scanf("%d %s %s",&stu[i].id,stu[i].name,stu[i].sex); fwrite(&stu[i],sizeof(node),1,fp); printf("\n"); } rewind(fp); for (i = 0; i < 3; ++i) { fread(&st[i],sizeof(node),1,fp); printf("%d %s %s\n",st[i].id,st[i].name,st[i].sex); } */ /* fscanf(fp,"%d%s",&i,s); fprintf(fp,"%d%c",j,ch); */ for (i = 0; i < 3; ++i) { scanf("%d%s%s",&stu[i].id,stu[i].name,stu[i].sex); fprintf(fp,"%d %s %s\n",stu[i].id,stu[i].name,stu[i].sex); } rewind(fp); for (i = 0; i < 3; ++i) { fscanf(fp,"%d %s %s",&st[i].id,st[i].name,st[i].sex); } for (i = 0; i < 3; ++i) { printf("%d %s %s\n",st[i].id,st[i].name,st[i].sex); } fclose(fp); } }