❶ c语言中怎样把数据存入文件
原因:
使用fopen时参数不正确,你是用 w参数,若文件存在则文件长度清为0,即该文件内容会消失。每次都是重新清空并写数据, 将w修改为a即可.
fopen函数说明见下方:
---------------
FILE * fopen(const char * path,const char * mode);
[编辑本段]函数说明
参数path字符串包含欲打开的文件路径及文件名,参数mode字符串则代表着流形态。
mode有下列几种形态字符串:
r 打开只读文件,该文件必须存在。
r+ 打开可读写的文件,该文件必须存在。
rb+ 读写打开一个二进制文件,只允许读写数据。
rt+ 读写打开一个文本文件,允许读和写。
w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。
w+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。
a 以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。(EOF符保留)
a+ 以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。 (原来的EOF符不保留)
wb 只写打开或新建一个二进制文件;只允许写数据。
wb+ 读写打开或建立一个二进制文件,允许读和写。
wt+ 读写打开或着建立一个文本文件;允许读写。
at+ 读写打开一个文本文件,允许读或在文本末追加数据。
ab+ 读写打开一个二进制文件,允许读或在文件末追加数据。
❷ c语言怎么用文件保存和读取 结构体数组/
#include <stdio.h>
int main()
{
struct test {
int a;
char s[10] ;
double d ;
} tr[3] , tw[3] ={
{1,"hello1" , 100 },
{2,"hello2" , 90},
{3,"hello3", 200}
} ; //定义一个结构体数组
FILE *fp ;
fp=fopen("struct.dat" , "wb" );
if ( fp == NULL )
return -1 ;
fwrite( (char*)tw , sizeof(struct test), 3 , fp ); //将数组写入文件
fclose(fp);
//以上完成写操作
fp=fopen("struct.dat" , "rb" );
if ( fp == NULL )
return -1 ;
fread( (char*)tr , sizeof(struct test), 3 , fp ); //从文件中读三个结构体的数据,也可以一个一个的读
fclose(fp);
//输出读到的数据
{
int i;
for(i=0;i<3;i++ )
printf("%d %s %lf\n" , tr[i].a , tr[i].s, tr[i].d );
}
return 0;
}
❸ c语言编程中怎么用文件存储数据具体一点,谢谢
主要用C语言的库函数,有open write read 或者是fopen fwrite fread这几个函数,迅速就是先open 然后write,具体函数的用法可自行网络,如果你是问存储数据的格式的话,自己定义结构体存储的方式是最方便直接的
❹ 如何把c语言中输出的数据保存到一个文件夹中
1、首先,可以先查看整体代码,了解保存整体框架。
❺ 编写好一个C语言程序,如何把数据一直保存下来
用数组保存。定义一个数组。
如:int a[6]={1,2,3,4,5,6};
然后输出
for(i=0;i<6;i++){
printf("%d",a[i]);}
代码如下:
#include<stdio.h>
int main(){
int a[6]={1,2,3,4,5,6};
int i;
for(i=0;i<=5;i++)
printf("%d ",a[i]);
}
(5)c语言使用c文件储存数据扩展阅读
保存方法二如下:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
FILE *fp;
char in;
fp = fopen("test.txt","w");
printf("请输入一个字符串(以!结束): ");
while((in=getchar()) != '!')
{
if(in <='z' && in >= 'a')
{
in -= 32;
}
fputc(in,fp);
}
fclose(fp);
return 0;
}
❻ C语言数据文件有几种存储方式每种存储形式各有什么特点
一、auto auto称为自动变量。 局部变量是指在函数内部说明的变量(有时也称为自动变量)。用关键字auto进7行说明, 当auto省略时, 所有的非全程变量都被认为是局部变量, 所以auto实际上从来不用。 局部变量在函数调用时自动产生, 但不会自动初始化, 随函数调用的结束, 这个变量也就自动消失了, 下次调用此函数时再自动产生, 还要再赋值, 退出时又自动消失。 二、static static称为静态变量。根据变量的类型可以分为静态局部变量和静态全程变量。 1. 静态局部变量 它与局部变量的区别在于: 在函数退出时, 这个变量始终存在, 但不能被其它、函数使用, 当再次进入该函数时, 将保存上次的结果。其它与局部变量一样。 2. 静态全程变量 Turbo C2.0允许将大型程序分成若干独立模块文件分别编译, 然后将所有模块的目标文件连接在一起, 从而提高编译速度, 同时也便于软件的管理和维护。静态全程变量就是指只在定义它的源文件中可见而在其它源文件中不可见的变量。它与全程变量的区别是: 全程变量可以再说明为外部变量(extern), 被其它源文件使用,而静态全程变量却不能再被说明为外部的, 即只能被所在的源文件使用。 三、extern extern称为外部变量。为了使变量除了在定义它的源文件中可以使用外, 还要被其它文件使用。因此, 必须将全程变量通知每一个程序模块文件, 此时可用extern来说明。 四、register register称为寄存器变量。它只能用于整型和字符型变量。定义符register说明的变量被Turbo C2.0存储在CPU的寄存器中, 而不是象普通的变量那样存储在内存中, 这样可以提高运算速度。但是Turbo C2.0只允许同时定义两个寄存器变量,一旦超过两个, 编译程序会自动地将超过限制数目的寄存器变量当作非寄存器变量来处理。因此, 寄存器变量常用在同一变量名频繁出现的地方。另外, 寄存器变量只适用于局部变量和函数的形式参数, 它属于auto型变量,因此, 不能用作全程变量。定义一个整型寄存器变量可写成: register int a;
❼ C语言文件读写结构体里面的数据怎样存到磁盘文件上
1、首先打开VC++6.0。
❽ 怎样用C语言保存一个文件
在C语言中,文件有多种读写方式,可以一个字符一个字符地读取,也可以读取一整行,还可以读取若干个字节。文件的读写位置也非常灵活,可以从文件开头读取,也可以从中间位置读取。
在C语言中,二进制方式很简单,读文件时,会原封不动的读出文件的全部内容,写的时候,也是把内存缓冲区的内容原封不动的写到文件中。
而对文本文件的处理就不一样了。Windows 和 DOS 下的文本文件以CRLF(0X0D 0X0A)作为换行符,而C语言本身以LF(0X0A)作为换行符,所以以文本方式写入数据时,会将LF(0X0A)替换为CRLF(0X0D 0X0A),而读取数据时又会替换回来。
CR(0X0D)表示回车符,也就是 '
';CL(0X0A)表示换行符,也就是 '
'。在Linux和其他一些系统中,文本文件的换行符就是LF(0X0A),与C语言的换行符一样。所以也就没有了文本方式和二进制方式的区分,使不使用'b'标志都是一样的。
(8)c语言使用c文件储存数据扩展阅读
C语言中文件的读取和写入
在C语言中写文件
//获取文件指针FILE *pFile = fopen("1.txt", //打开文件的名称
"w"); // 文件打开方式 如果原来有内容也会销毁//向文件写数据fwrite ("hello", //要输入的文字
//文字每一项的大小 以为这里是字符型的 就设置为1 如果是汉字就设置为4
strlog("hello"), //单元个数 我们也可以直接写5
pFile //我们刚刚获得到的地址 );//fclose(pFile); //告诉系统我们文件写完了数据更新,但是我们要要重新打开才能在写fflush(pFile); //数据刷新 数据立即更新