1. C语言怎么写到文件中
标准流程为:
1 通过fopen函数打开文件;
a) 原型
FILE * fopen(const char * path,const char * mode);
b) 参数
path为要打开的文件名,可以是绝对路径,也可以是相对路径。
mode为打开文件的方式。对于写文件,可以是"w", "wb", "w+", "wb+","a", "a+", "ab", "ab+"等。这些模式都可以支持写操作,区别为:
包含w的为直接写入,如果被打开的文件已存在,那么会对文件中的原始数据进行覆盖。
包含a的为附加模式,如果被打开文件已存在,那么新写入的内容会在文件结尾添加。
包含b的模式,打开的文件按照二进制方式进行写入。
包含+的模式,打开的文件为可读写。
无论哪种方式,如果原始文件不存在,则会创建该名字的新文件。
c) 返回值
返回值为FILE *型,是一个文件指针。后续所有操作均依赖这个文件指针值。
如果返回值为NULL,代表出错。常见的出错原因可能有
文件存在,操作者没有写权限。
对文件所在目录没有写权限。
文件所在磁盘分区已满。
2 通过fwrite/fprintf/fputc/fputs等函数写入数据;
a) size_t fwrite(const void* buffer, size_t size, size_t count, FILE* stream);
功能为向打开的文件stream中写入每块大小为size共计count块数据,数据的起始地址为buffer,返回实际写入的块数,出错时返回负值。
b) int fprintf (FILE* stream, const char*format, [argument]);
功能为向打开的文件stream中格式化输入数据,格式有format决定,后续参数为写入的数据,功能类似于printf。返回实际写入字符值,出错时返回负值。
c) int fputc (int c, FILE*fp);
功能为向打开的文件fp中写入字符c。该函数仅写入一个字符。参数c虽然为int型,但该函数仅使用其低八位。 返回值为输入参数c的ASCII码,出错时返回-1.
d) int fputs (const char *s, FILE *stream);
功能为向打开的文件stream写入字符串s(不包括结束符'\0')并增加一个换行符。即输入的内容在文件中是以一行的形式存在的。返回值为非负整数,出错时返回负值。
3 通过fclose函数关闭文件;
int fclose (FILE *stream);
关闭已打开的文件stream,如果成功返回0,否则返回负值。
以上所有函数调用时,都需要引用标准输入输出头文件stdio.h。
以下是一个简单的通过fwrite函数,向文件test.txt中写入一行测试字符串的样例代码。
#include <stdio.h>;//引入头文件
int main()
{
char *s = "this is a test string";//测试数据
FILE *fp = NULL;//文件指针
int ret;
fp = fopen("test.txt", "w");//以写入方式打开文件
if(fp == NULL)
{
printf("can not open file to write\n");
return -1;
}
ret = fwrite(s, sizeof(s), 1, fp);//写入数据
if(ret != 1)printf("write file error\n");//写文件出错提示
fclose(fp);//虽然fclose也有返回值,但很少失败,所以一般不需要检查返回值
return 0;
}
2. c语言写入文件方法
程序注意的一点,二进制和文本形式的读取区别你需要巩固,读的文件就不要以读写形式打开,养成一个好的习惯。
另外一个不太重要的一点,id确实很少作为int类型的,因为有些id会很长,比如10位20位,这样int就存不下了,而用char数组存的话只需要10个字节20个字节就能存下,对于每一位也好比较。
#include <stdio.h>
#include <stdlib.h>
typedef struct student
{
int unsigned id;
float score [3];
float rank;
}Student;
int main ()
{
Student s;
FILE * fp;
fp=fopen("C:\\f11.txt","r"); //尽量以可读方式打开
if (!fp)
{
printf("file cannot be opened");
exit(1);
}
//fscanf(fp,"%d %f %f %f",&s.id,&s.score[0],&s.score[1],&s.score[2]); 这一行拿到下面while语句里面
//fprintf(stdout,"%g",s.score[2]);
FILE * fw;
fw=fopen("C:\\f11a.txt","w"); //注意wb是以2进制形式打开文件,还有目录的格式
if (!fw)
{
printf("file cannot be opened");
exit(1);
}
while(!feof(fp))
{
fscanf(fp,"%03d%f%f%f",&s.id,&s.score[0],&s.score[1],&s.score[2]);
s.rank=(s.score[0]+s.score[1]+s.score[2])/3;
fprintf(fw,"%03d\t%.1f\t%.1f\t%.1f\t%.1f\n", s.id, s.score[0], s.score[1], s.score[2], s.rank); //尤其注意fprintf和fwrite不同,fwrite是以二进制形式写文件,如果用fwrite的话将会显示乱码,fwrite和fread配套,fscanf和fprintf配套
}
fclose (fp);
fclose(fw);
return 0;
}
3. c语言怎么将数据写入文件
可以使用C语言中的文件操作函数,将数据写入文件。具体如下
一、打开文件。
使用fopen函数。格式为:
FILE *fopen(const char *name, const char * mode);
其中name为要写入的文件名,mode为格式字符。要写入文件,mode可以是:
1、"w" 只写方式,文本形式输入;
2、"wb" 只写方式,二进制形式输入;
3、"wb+" 读写方式,二进制形式输入;
4、"w+" 读写方式,文本形式输入;
5、"a" 追加方式,写入文件结尾,文本形式输入;
6、"ab" 追加方式,写入文件结尾,二进制形式输入;
7、"ab+" 追加方式,可读写,写入文件结尾,二进制形式输入;
8、"a+" 追加方式,可读写,写入文件结尾,文本形式输入;
二、写入数据。
可以使用各种写入函数,向文件写入。 如打开的文件指针为fp,可以使用如下函数:
1、fputc, 写入一个字符。声明为:
int fputc(int ch, FILE *fp);
2、fputs, 写入一个字符串,声明为:
char * fputs(const char *str, FILE *fp);
3、fprintf,格式化写入,功能和printf类似。 声明为:
int fprintf(FILE *fp, const char *fmt, 。);
4、fwirte, 按块写入二进制数据,声明为:
int fwirte(char *buf, int block_size, int block_number, FILE *fp);
三、写入完毕后,调用fclose关闭文件:
int fclose(FILE *fp);
4. C里面怎么把读写文件呢
这个很简单呢,都看一看C文件读写的知bai识就知道了。
如下,给你举个例du子吧:[例] 向磁盘写入字符串,并写入文本文件test.txt: #i nclude
5. c++中怎么写入文件
给你一个最简单的方法创建并写文件,希望能对你有所帮助。
#include <fstream>
using namespace std;
int call_1(int);
int main()
{
ofstream fts1("d:/1.txt");
int a=5;
fts1<<a<<endl;
return 0;
}
6. C语言如何写入文本文件
1、首先输入下方的代码
#include <stdio.h>
int main()
{
//下面是写数据,将数字0~9写入到data.txt文件中
FILE *fpWrite=fopen("data.txt","w");
if(fpWrite==NULL)
{
return 0;
}
for(int i=0;i<10;i++)
fprintf(fpWrite,"%d ",i);
fclose(fpWrite);
//下面是读数据,将读到的数据存到数组a[10]中,并且打印到控制台上
int a[10]={0};
FILE *fpRead=fopen("data.txt","r");
if(fpRead==NULL)
{
return 0;
}
for(int i=0;i<10;i++)
{
fscanf(fpRead,"%d ",&a[i]);
printf("%d ",a[i]);
}
getchar();//等待
return 1;
}
2、面是写入到txt后的截图:
3、下面是读取文件后打印数据到控制台的截图。