A. C语言,往文件中写入数据的问题
fclose(fp):函数fclose()关闭给复出的文件流,释放已关制联到流的所有缓冲区.fclose()执行成功时返回0,否则返回EOF.加上这一句是为了保护你的文件如果不写这句那么别的程序也可以随意的对该文件进行写入这样你的文件就是乱套了。首先楼主要搞清楚getchar()是什么意思getchar()相当于getc(stdin)也就是从stdin缓冲流里面读数据你写这句也是为了防止你输入字符后后面还有残余但是你第二个是读文件数据流根本就没有读缓冲流所以不写那句也可以的不知道楼主明白否?补充回答:楼主没有弄明白什么是EOFEOF常被作为文件结束的标志。EOF的值通常为-1它不是字符串他相当于宏定义它是不会被写入到文件当中的如楼主还有疑问直接hi我吧
B. c语言中怎么向文件中写入数据啊 具体点 谢谢
不知你向文件输入的是什么数据,输入数据的函数很多,有fputc(s,fp);有fwrite()函数、、、、下面是想文件输入字符,并把字符串中的小写字符转换成大写字符:#include<stdio.h>#include<stdlib.h>#include<ctype.h>int main(){ FILE *fp; char filename[20]; printf("请输入文件的名称:"); scanf("%s",filename); if((fp=fopen(filename,"w"))==NULL) { printf("cannot open file ,,,\n"); exit(0); } printf("请输入字符直至结束(ctrl +z):"); fflush(stdin); char s; while(scanf("%c",&s),=EOF) { if(islower(s)) s=toupper(s);//把小写字符转换成大写字符 fputc(s,fp);} rewind(fp);//是位置指针重新返回文件的开头,此函数没有返回值 if((fp=fopen(filename,"r"))==NULL)//以读的方式打开文件 { printf("cannot open file ,,,\n"); exit(0); } while(,feof(fp)) { s=getc(fp); putchar(s); } return 0;}测试:请输入文件的名称:hello请输入字符直至结束(ctrl +z):hello world ,ZZ。
C. 在C程序中,可把整型数以二进制形式存放到文件中的函数是
fwrite函数【补充】:功功能:c语言函数,向文件写入一个数据块2用法:size_tfwrite(constvoid*buffer,size_tsize,size_tcount,file*stream);注意:这个函数以二内进制形式对文件进容行操作,不局限于文本文件返回值:返回实际写入的数据块数目(1)buffer:是一个指针,对fwrite来说,是要获取数据的地址;(2)size:要写入内容的单字节数;(3)count:要进行写入size字节的数据项的个数;(4)stream:目标文件指针;(5)返回实际写入的数据项个数count。说明:写入到文件的哪里?这个与文件的打开模式有关,如果是w+,则是从filepointer指向的地址开始写,替换掉之后的内容,文件的长度可以不变,stream的位置移动count个数;如果是a+,则从文件的末尾开始添加,文件长度加大。fseek对此函数有作用,但是fwrite[1]函数写到用户空间缓冲区,并未同步到文件中,所以修改后要将内存与文件同步可以用fflush(file*fp)函数同步。