#include <stdio.h> #include <stdlib.h> /*C语言 将键盘输入的字符写入文件*/ int main(int argc, char* argv[]) { FILE *fp; //文件指针 char str1[50],str2[50]; //定义两个字符串变量 int i; //定义一个整形变量 gets(str1); //获取从键盘输入的字符,保存到 str1 gets(str2); //获取从键盘输入的字符,保存到 str2 fp = fopen("f1801.txt", "w"); //以写入的方式打开文件 if(fp==NULL){printf("文件打开失败!";exit(1);} //如果打开失败就退出返回1 for( i=0; str1[i]!='\0'; i++ ) //一个一个写进文件 fputc(str1[i],fp); for( i=0; str2[i]!='\0'; i++ ) fputc(str2[i], fp); fclose(fp); //关闭文件 printf("输入的内容已经写入文件!"); return 0; } #include <stdio.h> #include <stdlib.h> /*C语言 统计文件中大小写字母个数*/ int main(int argc, char* argv[]) { FILE *fp; //文件指针 char c; int num_big = 0, num_small = 0, num_char = 0; fp = fopen("f1802.txt", "r"); // 以只读的方式打开文件 if(fp==NULL){printf("文件打开失败!");exit(1);} //如果打开失败就退出返回1 while(1) //循环计数 { c = fgetc(fp); //一次读取一个字符 if(c==EOF)break; //到文件尾则退出循环 if(c>='A' && c <='Z') num_big++; //对大写字母计数 if(c>='a' && c <='z') num_small++; //对小写字母计数 num_char++; //总数 } fclose(fp); //关闭文件 printf("大写字母有%d个\n小写字每有%d个\n总共有%d个字符\n", num_big, num_small, num_char); return 0; } #include <stdio.h> #include <stdlib.h> /*C语言 两个文件之间的复制 复制文件*/ int main(int argc, char* argv[]) { FILE *fp1, *fp2; //两个文件指针 char c; fp1 = fopen("f1802.txt", "r"); //以只读的方式打开文件 if(fp1==NULL){printf("文件1打开失败!");exit(1);} //打开文件失败退出返回1 fp2 = fopen("f1805.txt", "w"); if(fp2==NULL){printf("文件2打开失败!");exit(1);} while(1) //循环计数 { c = fgetc(fp1); //一次读取一个字符 if(c==EOF) break; //到文件尾则退出循环 if(c>='A' && c<='Z') fputc(c, fp2); //将大写字母写入到文件2 } fclose(fp1); //关闭文件 fclose(fp2); //关闭文件 printf("已完成操作!"); return 0; } #include <stdio.h> #include <stdlib.h> /*C语言 结构体和文件操作写入文件*/ typedef struct //学生结构体 { char name[10]; char sex[5]; int age; }STUDENT; int main(int argc, char* argv[]) { STDENT b[5]; //结构体数组 int num, i; FILE *fp; for( i = 0; i < 5; i++ ) //输入五个学生结构体变量内容 scanf("%s %s %d", b[i].name, b[i].sex, &b[i].age); fp = fopen("f1806.db", "wb"); //以二进制写入方式打开文件 if(fp==NULL){printf("文件写打开失败");exit(1);} //打开文件失败退出返回1 for( i=0; i<5; i++ ) fwrite(&b[i], sizeof(b[i]),1, fp); //以1个sizeof(b[i])块写入到fp中 fclose(fp); //关闭文件 printf("已经写入完成\n"); return 0; } #include <stdio.h> #include <stdlib.h> #include <string.h> /*C语言 结构体和文件操作读取文件*/ typedef struct { char name[10]; char sex[5]; int age; }STUDENT; int main(int argc, char* argv[]) { STUDENT c[10]; //结构体数组 int num, i; FILE *fp; fp = fopen("f1806.db", "rb"); //以二进制读取方式打开文件 if(fp==NULL){printf("文件读打开失败");exit(1);} //打开文件失败退出返回1 num = 0; while(fread(&c[num], sizeof(c[num]),1,fp)==1)num++; //从文件fp中一次读取1个sizeof(c[num])块的大小到c[num]中 fclose(fp); for( i=0; i<num; i++ ) //if(strcmp(c[i].sex, "男")==0) printf("%s %d\n", c[i].name, c[i].age); //输出男人的年龄 printf("%s %d\n", c[i].name, c[i].age); } #include <stdio.h> #include <stdlib.h> /*将文件1中的小写字母转成大写字母写入到文件2中*/ int main(int argc, char* argv[]) { FILE *fp; //文件指外 int num=0, i; char c, str[200]; fp = fopen("f1808.txt", "r"); //以读方式找开文件 if(fp==NULL){printf("文件打开失败1");exit(1);} while(1) { c = fgetc(fp); //一次读取一个字符 if(c==EOF) break; //到文件尾则跳出 str[num] = c; num++; } fclose(fp); //关闭文件 for( i=0; i<num; i++) if(str[i]>='a' && str[i]<='z') str[i] = str[i]-32; //小写转成大写 fp = fopen("f1808.txt", "w"); //以写方式打开文件 if(fp==NULL){printf("文件打开失败2");exit(1);} for( i=0; i<num; i++ ) fputc(str[i], fp); //逐个写入文件 fclose(fp); //关闭文件 printf("文件中的小写字母已经转成了大写字母!"); return 0; } #include <stdio.h> #include <stdlib.h> /*将两个文件合并成一个文件*/ FILE* openfile(FILE *fp, char* name, char* mode) { fp = fopen(name, mode); if(fp==NULL){printf("文件打开失败");exit(1);} return fp; } int main(int argc, char* argv[]) { FILE *fp1, *fp2, *fp3; //文件指针 char c; fp1 = openfile(fp1, "f18091.txt", "r"); //以只读的方式打开文件 fp2 = openfile(fp2, "f18092.txt", "r"); fp3 = openfile(fp3, "f18093.txt", "w"); while(1) { c = fgetc(fp1);//一次读取一个字符 if(c==EOF) break;//到文件尾则跳出 fputc(c, fp3); //写入文件 } while(1) { c = fgetc(fp2);//一次读取一个字符 if(c==EOF) break;//到文件尾则跳出 fputc(c, fp3);//写入文件 } fclose(fp1); //关闭文件 fclose(fp2); fclose(fp3); printf("操作完成\n"); return 0; } #include <stdio.h> #include <stdlib.h> #include <string.h> /*结构体文件操作 将结构体其中一成员加1(C语言结构体读取和写入操作)*/ typedef struct //定义STUDENT结构体 { char name[10]; char sex[5]; int age; }STUDENT; int main(int argc, char* argv[]) { STUDENT c[10]; //定义结构体变量 int num, i; FILE *fp; //文件指针 fp = fopen("f1806.db", "rb"); //以读方式打开文件 if(fp==NULL){printf("文件读打开失败");exit(1);} num = 0; while(fread(&c[num],sizeof(c[num]), 1, fp)==1) num++; //读取文件内容到结构体变量 fclose(fp); //关闭文件 for( i=0; i<num; i++ ) c[i].age++; //将结构体一成员加1 fp = fopen("f1806.db", "wb"); //以写方式打开文件 if(fp==NULL){printf("文件写打开失败");exit(1);} for( i=0; i<num; i++ ) //将内容写回到文件 fwrite(&c[i], sizeof(c[i]),1,fp); fclose(fp); for( i=0; i<num; i++ ) //输出修改后的数据内容 printf("%s %d\n", c[i].name, c[i].age); return 0; }