发布网友 发布时间:2022-05-26 13:06
共5个回答
热心网友 时间:2023-10-18 13:59
标准流程为:
1 通过fopen函数打开文件;
a) 原型
FILE * fopen(const char * path,const char * mode);
b) 参数
path为要打开的文件名,可以是绝对路径,也可以是相对路径。
mode为打开文件的方式。对于写文件,可以是"w", "wb", "w+", "wb+","a", "a+", "ab", "ab+"等。这些模式都可以支持写操作,区别为:
包含w的为直接写入,如果被打开的文件已存在,那么会对文件中的原始数据进行覆盖。
包含a的为附加模式,如果被打开文件已存在,那么新写入的内容会在文件结尾添加。
包含b的模式,打开的文件按照二进制方式进行写入。
包含+的模式,打开的文件为可读写。
无论哪种方式,如果原始文件不存在,则会创建该名字的新文件。
c) 返回值
返回值为FILE *型,是一个文件指针。后续所有操作均依赖这个文件指针值。
如果返回值为NULL,代表出错。常见的出错原因可能有
文件存在,操作者没有写权限。
对文件所在目录没有写权限。
文件所在磁盘分区已满。
2 通过fwrite/fprintf/fputc/fputs等函数写入数据;
a) size_t fwrite(const void* buffer, size_t size, size_t count, FILE* stream);
功能为向打开的文件stream中写入每块大小为size共计count块数据,数据的起始地址为buffer,返回实际写入的块数,出错时返回负值。
b) int fprintf (FILE* stream, const char*format, [argument]);
功能为向打开的文件stream中格式化输入数据,格式有format决定,后续参数为写入的数据,功能类似于printf。返回实际写入字符值,出错时返回负值。
c) int fputc (int c, FILE*fp);
功能为向打开的文件fp中写入字符c。该函数仅写入一个字符。参数c虽然为int型,但该函数仅使用其低八位。 返回值为输入参数c的ASCII码,出错时返回-1.
d) int fputs (const char *s, FILE *stream);
功能为向打开的文件stream写入字符串s(不包括结束符'\0')并增加一个换行符。即输入的内容在文件中是以一行的形式存在的。返回值为非负整数,出错时返回负值。
3 通过fclose函数关闭文件;
int fclose (FILE *stream);
关闭已打开的文件stream,如果成功返回0,否则返回负值。
以上所有函数调用时,都需要引用标准输入输出头文件stdio.h。
以下是一个简单的通过fwrite函数,向文件test.txt中写入一行测试字符串的样例代码。
#include <stdio.h>//引入头文件
热心网友 时间:2023-10-18 14:00
#include<stdio.h>我能吐槽你调用函数怎么写在了main里面,还有那么多花括号干嘛的,唉,能运行才怪。
推荐你本书吧,C Primer Plus,值得拥有。
热心网友 时间:2023-10-18 14:00
这种循环次数很大的情况尽量不要用递归,时间会相当长热心网友 时间:2023-10-18 14:01
1)首先的程序逻辑就有问题,要先把中间的一段代码移除去,写成函数fn的定义:追答已经有答案了,就不多说了。自己写程序要多练,不能烦。
热心网友 时间:2023-10-18 14:01
有一本网上的电子书 叫C语言程序设计100例 有这个例子追问找不到。可以给我看看 这里错在哪里吗 。大恩不言谢找不到。可以给个完整版吗吗吗, 大恩不言谢