c 如何将数据写入文件
来源:网络收集 点击: 时间:2024-02-23C语言程序的建立和编译这里不再赘述。打开控制台输入g++ -v即可查看版本。我这里用到的gcc版本是mingw的4.9版本。
将数据写入文件大体分为三个步骤:一、打开文件;二、向文件输出内容;三、关闭文件。

一、打开文件
C语言操作文件基于FILE指针,定义在头文件stdio.h中。在打开文件之前需要新建一个FILE指针。打开文件使用freopen(const char *filename, const char *mode)函数。filename是文件的绝对路径或相对路径。mode是使用文件方式,写入文件的文件使用方式选择带有w的,如果是二进制文件,则再加上b。使用文件方式见表:

二、向文件输出内容
对文本文件的输出函数有字符输出函数fputc()、字符串输出函数fputs()和格式化输出函数fprintf()。根据需要灵活运用。对于二进制的数据块则使用fwrite()函数。
三、关闭文件
在使用完一个文件后应该关闭它,以防止它再被误用。使用fclose(FILE* fp)函数关闭文件。

接下来看一个例子来温习上面的三个步骤。这个例子的功能是实现文件的复制。
代码:/* learn_write.cc */
#include stdio.h
#include stdlib.h
int main(int argc,char *argv)
{
FILE *in, *out;
char ch, infile, outfile;
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中输出文本文件内容。

另外,输出数据到文件还有一种方法,就是利用标准输出+文件重定向。
正常情况下如果使用print函数,将在控制台中输出结果。在输出之前加上文件重定向freopen函数,就把控制台中输出的内容全部写入文件中去了。下面是一个例子。
代码:/* reopen.cc */
#include stdio.h
#include stdlib.h
int main(int argc,char *argv)
{
char filename = output.txt;
freopen(filename, w, stdout);
printf(Write something into %s, filename);
return 0;
}

篇幅所限,不再举更复杂的例子。C语言标准库还有其他读写函数和文件定位函数等,不一一说明了。最重要的是实践中掌握这些函数的用法。
C语言版权声明:
1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。
2、本站仅提供信息发布平台,不承担相关法律责任。
3、若侵犯您的版权或隐私,请联系本站管理员删除。
4、文章链接:http://www.1haoku.cn/art_110022.html