这是一个关于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个回答

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

qq_43412960
qq_43412960 谢谢
4 个月之前 回复

char zeng[20];
这里【】里的20是设置输入字符的最大长度,超过20个字符的话就会自动去掉后面的,想要多写不溢出的话把20改成更大的数字比如20000就OK了

qq_43412960
qq_43412960 谢谢
4 个月之前 回复

...
{
FILE *fp;
char ch;

fp = fopen("F:\\啦啦.txt", "at+");


if ((fp = fopen("F:\\啦啦.txt", "at+")) == NULL)
{
printf("Cannot open file strike any key exit!");
getchar();
exit(1);
}
ch = fgetc(fp);
while (ch != EOF)
{
putchar(ch);
ch = fgetc(fp);

}

 ch = getchar();  //这里回车作为输入结束
 FILE *stream = stdin;
 int stdin_len = strlen(stream->_ptr);
 if (stdin_len > 2)
 {
    fputs(stream->_ptr, fp);    //stream->_ptr 后面会带有\n\n  不需要就开空间复制前面的输入字符串
 }
fclose(fp);
system("pause");
return 0;

}

qq_43412960
qq_43412960 大佬我爱你
4 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问

相似问题

1
C语言写入数据到二进制文件失败
1
Devc++编译器中用c写文件存取为什么打开文件为乱码?
2
C语言数据文件处理技术问题,从3个单词文件中找出第1个在这3个文件中都出现的单词?
2
Everything是使用什么语言写的?Everything.db是一个数据库文件吗?用的是什么技术?
1
C语言对用堆导入并显示的数据进行进一步的处理
1
怎么用c语言把数据以表格方式写到pdf中
1
关于c语言读取文件信息到链表,怎么操作?
2
c语言 大量数据在写入文件时会崩溃 急求问题所在和解决办法
0
如何按文件名顺序依次读取文件,对包含文件头的文件如何跳过文件头读取数据?
0
读取数据集写入文件打印输出的问题,要使用C语言的程序代码编写运用库函数的实现的方式怎么做
1
小白求助大神!!关于读取文本文件到数组的问题。
0
用C语言编写一个超市总营业分析程序
0
文件的输入输出流问题,怎么写
0
c语言如何读取文本文件中指定的字符串并保存到字符串数组中?
3
请问文件写入数据时如何判断文件是否已经打开?
2
C文件怎么改写成java文件?
1
matlab中如何读取csv文件中的数据,除了直接读取对应的区域,还有别的什么办法来读取这些数据?
0
C语言 将文章划分为最少的单词。
2
C语言从文件读入姓名,电话号码,地址数据的一些问题,为什么只能读李明,其他的不能读出来?
3
用C语言编译完成这个程序,但我现在在学Java,对C的了解不多,希望大触们能帮帮我