qq_43412960 2019-10-08 14:22 采纳率: 78.6%
浏览 297
已采纳

这是一个关于C语言的写文件数据问题

#include<stdio.h>
#include <stdlib.h>
#include<conio.h>
#include<String.h>
int main()
{
FILE *fp;
char ch;
char   zeng[20];
fp=fopen("F:\\啦啦.txt","at+");


     if((fp=fopen("F:\\啦啦.txt","at+"))==NULL)
      {
            printf("Cannot open file strike any key exit!");
            getch();
            exit(1);
      }
     ch=fgetc(fp);
    while (ch != EOF)
      {
      putchar(ch);
      ch=fgetc(fp);
      } //这个过程是进行读数据的测试过程
     //接下来进行写数据
scanf("%s",zeng);
fputs(zeng,fp);

   fclose(fp);



system("pause");
return 0;
}

我想完成文件的读写,我用的window10系统,在F盘建立文件啦啦.txt。想对它通过C语言练习文件读写。上面代码完成了。但是有个问题,就是写数据,最多能写20个字符。我不想用这种方式,因为假如我只写3个字符,就浪费了些空间,写22个字符的话,就溢出了,有没有办法能兼容这两个问题,灵活的写任意长度的字符都没事呢

  • 写回答

3条回答 默认 最新

  • 2BNo.one 2019-10-08 15:31
    关注

    这个zeng[]是临时变量,占用的内存在该函数结束时会自动释放
    除非先知道输入的数据的大小然后随时申请空间(malloc),否则只能把20改成一个更大的数据

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机
  • ¥20 程序进入HardFault_Handler
  • ¥15 关于#python#的问题:自动化测试