问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

C语言怎么写到文件中

发布网友 发布时间: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>//引入头文件
int main()
{
    char *s  = "this is a test string";//测试数据
    FILE *fp = NULL;//文件指针
    int ret;
    
    fp = fopen("test.txt", "w");//以写入方式打开文件
    if(fp == NULL)
    {
        printf("can not open file to write\n");
        return -1;
    }
    
    ret = fwrite(s, sizeof(s), 1, fp);//写入数据
    if(ret != 1)printf("write file error\n");//写文件出错提示
    fclose(fp);//虽然fclose也有返回值,但很少失败,所以一般不需要检查返回值
    
    return 0;
}

热心网友 时间:2023-10-18 14:00

#include<stdio.h>
long  fibonacci(int n);
int main(void)
{
    int n=30;//求到第30位吧,50位不知道溢出多少了,大数运算我还不会
    long sum;
    char str[100];
    FILE *fp;
    fp = fopen("c:\\w.txt", "w");//指定输出的文本名
    sum = fibonacci(n);
    printf("%ld\n",sum);
    fprintf(fp,"%ld",sum);//将结果输出到指定文件中
    fclose(fp);
    system("pause");
    return(0);
}
long  fibonacci(int n)
{
    long result;
    long a1, a2;
    long sum = 2; //从第三项开始的,所以sum初始值为2
    result = a1 = 1;
    while (n > 2)
    {
        n -= 1;
        a2 = a1;
        a1 = result;
        result = a1 + a2;
        sum += result;
    }//我用的是迭代法,递归那效率算了吧,你用也可以,自己改下
    return sum;
}

我能吐槽你调用函数怎么写在了main里面,还有那么多花括号干嘛的,唉,能运行才怪。

推荐你本书吧,C Primer Plus,值得拥有。

热心网友 时间:2023-10-18 14:00

这种循环次数很大的情况尽量不要用递归,时间会相当长
#include <stdio.h>
#include <stdlib.h>
double fn(int n);//返回值最好是double型,因为会很大
int main()
{
FILE *fp;
if((fp=fopen("result.txt","w"))==NULL){
printf("Open file error!\n");
exit(0);
}
fprintf(fp,"%lf",fn(50));
printf("%lf\n",fn(50));
}

double fn(int n){
double result;
int i;
double f1=1.0,f2=1.0,temp;
if(n==1 || n==2)
result=1;
else
{
for(i=3; i<=n; i++){
temp=f2;
f2=f1+f2;
f1=temp;
}
result=f2;
}
return result;
}

运行结果:12586269025

热心网友 时间:2023-10-18 14:01

1)首先的程序逻辑就有问题,要先把中间的一段代码移除去,写成函数fn的定义:

int fn(int n)
{
int c;
if(n==1||n==2)
c=1;
else
c=fn(n-1)+fn(n-2);
return c;
}

2)把fputc(fn(i),fp);改成fprintf(fp,"%d\n",fn(i));追问可以给个完整版么,已经弄得烦死了

追答已经有答案了,就不多说了。自己写程序要多练,不能烦。

热心网友 时间:2023-10-18 14:01

有一本网上的电子书 叫C语言程序设计100例 有这个例子追问找不到。可以给我看看 这里错在哪里吗 。大恩不言谢

找不到。可以给个完整版吗吗吗, 大恩不言谢

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
HPV16阳性就是宫颈癌吗 防静电工作台销售前景怎么样 在深圳,精益管工作台的价格一般是怎么样的? 防静电式PCB周转车有没有按需定做的生产厂? 深圳全百捷公司主要做什么的 深圳哪一个厂家的信誉比较好。 广东防静电工作台哪里的比较好 男人补精吃什么男人补精10大食物 什么是甲骨文认证教育 甲骨文证报考条件 重庆到成都周边旅游三天怎么玩求攻略 上夹棍是什么感觉? 笑傲江湖ol夹棍有什么用... 甜虾的介绍 甜虾是河虾还是海虾 甜虾是海鲜吗? 领克车机pin码 女士黄金戒指一般几克 苹果5怎么安装Flash插件?? iphon5c浏览器怎么安装flash插件 巴洛克式,哥特式,文艺复兴式建筑有什么不同?分别有哪些代表性建筑? 文艺复兴和巴洛克风格的发展趋势? 如何理解区分文艺复新和巴洛克艺术 文艺复兴建筑与巴洛克建筑的区别与联系? 巴洛克与文艺复兴艺术风格的区别是什么 2019台州银行总行招聘30名管理培训生户籍要求? 2020云南农信社考试管理培训生招聘有英语级别要求吗? 巴洛克与文艺复兴艺术风格的主要区别是什么 2019台州银行总行招聘30名管理培训生基本要求? 2019台州银行总行招聘30名管理培训生学历及专业要求? 求重庆到成都3日游详细攻略~做动车去~ 如何设置路由器,让一台电脑可以连上局域网,但不能连上Internet? 滴滴打车需要办营运证吗,办不下来怎么办 注册滴滴快车车主不办理网约车驾驶证营运证,滴滴平台正常接单干活非法运营,私家车辆使用年限有变化吗? ququ粉丝牌多少级送 求《水浒传》中15个片段加赏析 linux的磁盘分区是怎样的 女生好身材的定义 身材标准和身材好是不是同一个定义? 好身材真的是追求体重吗?怎样才算好身材? 身材好的标准怎么定义? 腊八蒜放盐还是糖腊八蒜需要放盐和糖吗 有没有骨粒香的介绍啊? 骨粒香是怎么回事? 骨粒香固态调味料用途 骨粒香--鸡精?味精? 骨粒香调味料是拿来干嘛用的呀 骨粒香可以调凉菜吗,可以调凉菜料水吗? 骨粒香注册过商标吗?还有哪些分类可以注册? 为何qq安全中心说我的成功凭证已失效,无法设置资料,