热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

用C逐行写入文件

如何解决《用C逐行写入文件》经验,为你挑选了1个好方法。

我目前正在尝试获取代码,以完全按照打印数据的方式将数据写入文件。
由于某些原因,当我之后打开文本文件时,只有二进制数据。
如何将其转换为可读格式?

码:

#include 

void calcData(float *x,float* y){
    float tmpX,tmpY,a,b;
    a = 2.75;
    b = 0.2;
    tmpX = *x;
    tmpY = *y;
    *x = tmpY;
    *y = (-b*tmpX) + (a*tmpY) - (tmpY*tmpY*tmpY);
    return;
}

int main(){

    FILE *datei;
    float x = 0.5;
    float y = 0.5;
    int i;
    for(i=0;i<1000;i++){
        calcData(&x,&y);
        printf("%f \t %f \n",x,y);
        datei=fopen("txt.txt","a");
        fwrite(&x,1,sizeof(float),datei);
        fwrite("\t",1,sizeof(char),datei);
        fwrite(&y,1,sizeof(float),datei);
        fwrite("\n",1,sizeof(char),datei);
        fclose(datei);

    }
}

bruno.. 6

之后,当我打开文本文件时,只有二进制数据。

因为在做

   fwrite(&x,1,sizeof(float),datei);
   ..
   fwrite(&y,1,sizeof(float),datei);

您编写浮点数的内部表示形式。

例如,前两个值是x = 0.500000和y = 1.150000,它们的内部表示形式是0x3f000000和0x3f933333(IEEE浮点数在32b上)。因此,当您根据字节序fwrite支持其值的4个字节的内存时,您会以相反的顺序编写代码0x3f 0x0 0x0 0x0(针对x)和0x3f 0x93 0x33 0x33(针对y)

如何将其转换为可读格式?

fprintf(datei, "%f\t%f\n", x, y);

就像你做的一样 printf("%f \t %f \n",x,y);

(请注意,printf("%f \t %f \n",x,y);实际上fprintf(stdout, "%f \t %f \n",x,y);,因此,如果这是标准输出的正确方法,则它也位于文件中)

这也是更好地移到datei=fopen("txt.txt","a"); 循环和fclose(datei); 循环



1> bruno..:

之后,当我打开文本文件时,只有二进制数据。

因为在做

   fwrite(&x,1,sizeof(float),datei);
   ..
   fwrite(&y,1,sizeof(float),datei);

您编写浮点数的内部表示形式。

例如,前两个值是x = 0.500000和y = 1.150000,它们的内部表示形式是0x3f000000和0x3f933333(IEEE浮点数在32b上)。因此,当您根据字节序fwrite支持其值的4个字节的内存时,您会以相反的顺序编写代码0x3f 0x0 0x0 0x0(针对x)和0x3f 0x93 0x33 0x33(针对y)

如何将其转换为可读格式?

fprintf(datei, "%f\t%f\n", x, y);

就像你做的一样 printf("%f \t %f \n",x,y);

(请注意,printf("%f \t %f \n",x,y);实际上fprintf(stdout, "%f \t %f \n",x,y);,因此,如果这是标准输出的正确方法,则它也位于文件中)

这也是更好地移到datei=fopen("txt.txt","a"); 循环和fclose(datei); 循环


推荐阅读
  • 本文介绍了一个题目的解法,通过二分答案来解决问题,但困难在于如何进行检查。文章提供了一种逃逸方式,通过移动最慢的宿管来锁门时跑到更居中的位置,从而使所有合格的寝室都居中。文章还提到可以分开判断两边的情况,并使用前缀和的方式来求出在任意时刻能够到达宿管即将锁门的寝室的人数。最后,文章提到可以改成O(n)的直接枚举来解决问题。 ... [详细]
  • DescriptionclickmeSolution套路的状压期望DP题。。。考虑倒退期望:设fi,jrolepresentationstyleposi ... [详细]
  • JZOJ 1266. 玉米田
    1266.玉米田(cowfood.pasccpp)(FileIO):input:cowfood.inoutput:cowfood.outTimeLimits:1000msMemor ... [详细]
  • 题面传送门Solution看到什么最大值最小肯定二分啊。check直接跑一个二分图匹配就好了。orzztl!!!代码实现*mail:mle ... [详细]
  •   并查集是一种群众喜闻乐见的数据结构,其复杂度是数据结构中最奇葩的之一了,Tarjan证明其为阿克曼函数的反函数,在可以想象(不全面的解释啊)的范围内小于等于3。。。我们就把它当做O(1)吧。下面通 ... [详细]
  • 为什么即使Linux服务器的socket关闭,客户端仍能调用一次send函数?
    要弄清这个问题,首先需要知道调用send()发送数据时,发生了什么。当调用send()发送数据时,并不是直接将数据发送到网络中,而是先将待发送的数据放到socket发送缓冲区中,然 ... [详细]
  • 一.  一就是用来乱扯的?#include<bitsstdc++.h>万能头文件#definefr(i,a,b)for(intia,_end_b;i<_en ... [详细]
  • 昨夜西风凋碧树,独上高楼,望尽天涯路。——五代晏殊蝶恋花最近学习了APUE的一系列函数,要求用ifconfig命令来获取本机的网卡ip&# ... [详细]
  • 组装电脑题意:有b块钱,有很多种配件,每种配件至少选一件,每个配件有名字,参数(没用),价格,品质因子现在如何买才能使得最小的品质因子最大(最大化最小值问题)输入118800 ... [详细]
  • 本文介绍了九度OnlineJudge中的1002题目“Grading”的解决方法。该题目要求设计一个公平的评分过程,将每个考题分配给3个独立的专家,如果他们的评分不一致,则需要请一位裁判做出最终决定。文章详细描述了评分规则,并给出了解决该问题的程序。 ... [详细]
  • 本文主要解析了Open judge C16H问题中涉及到的Magical Balls的快速幂和逆元算法,并给出了问题的解析和解决方法。详细介绍了问题的背景和规则,并给出了相应的算法解析和实现步骤。通过本文的解析,读者可以更好地理解和解决Open judge C16H问题中的Magical Balls部分。 ... [详细]
  • 本文介绍了解决二叉树层序创建问题的方法。通过使用队列结构体和二叉树结构体,实现了入队和出队操作,并提供了判断队列是否为空的函数。详细介绍了解决该问题的步骤和流程。 ... [详细]
  • 本文介绍了C函数ispunct()的用法及示例代码。ispunct()函数用于检查传递的字符是否是标点符号,如果是标点符号则返回非零值,否则返回零。示例代码演示了如何使用ispunct()函数来判断字符是否为标点符号。 ... [详细]
  • Linux环境变量函数getenv、putenv、setenv和unsetenv详解
    本文详细解释了Linux中的环境变量函数getenv、putenv、setenv和unsetenv的用法和功能。通过使用这些函数,可以获取、设置和删除环境变量的值。同时给出了相应的函数原型、参数说明和返回值。通过示例代码演示了如何使用getenv函数获取环境变量的值,并打印出来。 ... [详细]
  • 本文介绍了PE文件结构中的导出表的解析方法,包括获取区段头表、遍历查找所在的区段等步骤。通过该方法可以准确地解析PE文件中的导出表信息。 ... [详细]
author-avatar
jzcoijawlkmlzkm_307
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有