
文件操作
qq_43361844
这个作者很懒,什么都没留下…
展开
-
文件读写错误1(文件的读写交替进行,其中没有对文件指针的位置重置)
//fscanf() 和 fprintf()两个函数如果想交替使用必须要用fseek 进行重置文件指针位置,否则出错FILE * fp; char buffer[200] = { 0 }; fp = fopen("D:\\visualcode\\C语言读取及修改简单配置文件内容\\test_fprintf\\Startup.cfg", "r+"); //fseek(fp, 0, SEEK_SET); ///① fprintf(fp, "%s", "1234567890"); //② //fs原创 2020-12-10 15:41:16 · 258 阅读 · 0 评论 -
文件读写4(读取文件中指定的数据并且修改)
找了很多用C语言修改文件中数据的例子,很多都是将修改过后的整个文件复制到另一个文件里,之后删除源文件,接着将刚写进数据的文件名改为删除的文件名,感觉这有点自欺欺人的感觉,针对小项目还行,如果遇到文件大一点,处理的文件特别多的情况就很棘手,首先内存占用这一块就过不了关。最终找到一种方法,是通过文件指针,将原来的数据覆盖写的方式,但是这种方式也是有不足的,如果修改过后的数据没有之前的长就会导致有残余数据接在后面导致错误,但是只需要写入空格占位就可以。FILE * fp;//如果文件存在则删除并且重建原创 2020-12-10 09:52:46 · 409 阅读 · 0 评论 -
文件读写5(C语言 读写的方式是按行来读还是按照一个字符串来读)
按照行来读 1 按照字符串来读 2FILE *fp;fp = fopen("test.cfg", "r");//// 1//如果是按照行来读char buffer[200];//fscanf()中的format格式为"%[^\n]%*[\n]",取回车之前的内容到变量,并且将空格取走while(fscanf(fp,"%[^\n]%*[\n]",buffer)!=EOF);//如果没有加%*[\n]会一直打印之前的buffer值,陷入死循环 printf("%s\n",buf...原创 2020-12-10 09:46:01 · 179 阅读 · 0 评论 -
文件读写3(C语言从文件中读写)
//FILE * fp;//fp = fopen(“D:\visualcode\C语言读取及修改简单配置文件内容\test_fprintf\my_config”, “r”);//char buffer[200];//while (fscanf(fp, “%*[ ]”)!=EOF && fscanf(fp, “%s”, buffer)!=EOF)//跳过每行之前的多余的空格//buffer最终存储的是每行除掉换行的所有字符//{// printf("%s\n", buffer);原创 2020-12-09 17:02:01 · 125 阅读 · 0 评论 -
文件读写2 (C语言从控制台多次读取不同行的内容写到文件之中)
读取字符串到文件中很简单,但是如果读取的字符串后面有空格就需要跳过回车(\n)才可以读入。1.(错误的写法)FILE *fp;fp = fopen(“D:\visualcode\C语言读取及修改简单配置文件内容\test_fprintf\my_config”, “w”);char buffer[200];scanf("%[^\n]", buffer);fprintf(fp, “%s\n”, buffer);scanf("%[^\n]", buffer);fprintf(fp, “%s\n”,原创 2020-12-09 16:24:45 · 1287 阅读 · 0 评论 -
文件读写1(用C语言将文件中内容读取到控制台之中)
FILE *fp;fp = fopen(“D:\visualcode\C语言读取及修改简单配置文件内容\test_fprintf\my_config”, “r+”);char buffer[200];while (fscanf(fp, “%[^\n]”, buffer) != EOF){printf("%s\n", buffer);}fclose(fp);return 0;原创 2020-12-09 15:47:33 · 916 阅读 · 0 评论