c 如何将数据写入文件
C语言简单易用,功能强大 。今天就来说说如何使用C语言操作数据写入文件中。
操作方法
- 01
C语言程序的建立和编译这里不再赘述。打开控制台输入g++ -v即可查看版本。我这里用到的gcc版本是mingw的4.9版本。 将数据写入文件大体分为三个步骤:一、打开文件;二、向文件输出内容;三、关闭文件。
- 02
一、打开文件 C语言操作文件基于FILE指针,定义在头文件stdio.h中。在打开文件之前需要新建一个FILE指针。打开文件使用freopen(const char *filename, const char *mode)函数。filename是文件的绝对路径或相对路径。mode是使用文件方式,写入文件的文件使用方式选择带有'w'的,如果是二进制文件,则再加上'b'。使用文件方式见表:
- 03
二、向文件输出内容 对文本文件的输出函数有字符输出函数fputc()、字符串输出函数fputs()和格式化输出函数fprintf()。根据需要灵活运用。对于二进制的数据块则使用fwrite()函数。 三、关闭文件 在使用完一个文件后应该关闭它,以防止它再被误用。使用fclose(FILE* fp)函数关闭文件。
- 04
接下来看一个例子来温习上面的三个步骤。这个例子的功能是实现文件的复制。 代码:/* learn_write.cc */ #include <stdio.h> #include <stdlib.h> int main(int argc,char *argv[]) { FILE *in, *out; char ch, infile[20], outfile[20]; printf("Enter the input file name:"); scanf("%s", infile); in = fopen(infile, "r"); if (in == NULL) { printf("ERROR: Cannot open %s\n", infile); exit(1); } printf("Enter the output file name:"); scanf("%s", outfile); out = fopen(outfile, "w"); if (out == NULL) { printf("ERROR: Cannot open output file\n"); exit(1); } while (!feof(in)) {fputc(fgetc(in), out);} fclose(in); fclose(out); return 0; } 为了测试程序运行结果,将文件编译为clone.exe文件。再程序所在目录下新建一个input.txt文本文件,然后运行程序clone,执行复制到output.txt文件。结果如图,type命令用来再DOS中输出文本文件内容。
- 05
另外,输出数据到文件还有一种方法,就是利用标准输出+文件重定向。 正常情况下如果使用print函数,将在控制台中输出结果。在输出之前加上文件重定向freopen函数,就把控制台中输出的内容全部写入文件中去了。下面是一个例子。 代码:/* reopen.cc */ #include <stdio.h> #include <stdlib.h> int main(int argc,char *argv[]) { char filename[40] = "output.txt"; freopen(filename, "w", stdout); printf("Write something into %s", filename); return 0; }
- 06
篇幅所限,不再举更复杂的例子。C语言标准库还有其他读写函数和文件定位函数等,不一一说明了。最重要的是实践中掌握这些函数的用法。