读取文件的代码C(读取文件的代码Python)

http://www.itjxue.com  2023-04-11 12:06  来源:未知  点击次数: 

C读取文件

下面是一个完整的实例, 楼主参考:

#include stdio.h

#include stdlib.h

int main()

{

char *pchBuf = NULL;

int nLen = 0;

FILE *pF = fopen(__FILE__, "r"); //打开文件

fseek(pF, 0, SEEK_END); //文件指针移到文件尾

nLen = ftell(pF); //得到当前指针位置, 即是文件的长度

rewind(pF); //文件指针恢复到文件头位置

//动态申请空间, 为保存字符串结尾标志\0, 多申请一个字符的空间

pchBuf = (char*) malloc(sizeof(char)*nLen+1);

if(!pchBuf)

{

perror("内存不够!\n");

exit(0);

}

//读取文件内容//读取的长度和源文件长度有可能有出入,这里自动调整 nLen

nLen = fread(pchBuf, sizeof(char), nLen, pF);

pchBuf[nLen] = '\0'; //添加字符串结尾标志

printf("%s\n", pchBuf); //把读取的内容输出到屏幕看看

fclose(pF); //关闭文件

free(pchBuf); //释放空间

return 0;

}

C语言 读取文件的代码

art类型有两个指针成员,sizeof(art)==8。

在write函数中,你把两个指针写到文件里去了,而不是把指针所指的word(字符串)写到文件里去了。

所以fread(temp, sizeof(art), 1, fp)这一句把两个指针读到temp起始的空间里了,此时原来指针可能已经释放,所指内存不再由你支配。

你那样做有点像刻舟求剑,指针的确还指向那里,但字符串已经消失了。

c语言读取文本文件

1、C语言标准库提供了一系列文件操作函数。文件操作函数一般以f+单词的形式来命名(f是file的简写),其声明位于stdio.h头文件当中。例如:fopen、fclose函数用于文件打开与关闭;fscanf、fgets函数用于文件读取;fprintf、fputs函数用于文件写入;ftell、fseek函数用于文件操作位置的获取与设置。

2、例程:

#includestdio.h

int?a;

char?b,c[100];

int?main(){

????FILE?*?fp1?=?fopen("input.txt",?"r");//打开输入文件

????FILE?*?fp2?=?fopen("output.txt",?"w");//打开输出文件

????if?(fp1==NULL?||?fp2==NULL)?{//若打开文件失败则退出

????????puts("不能打开文件!");

????????rturn?0;

????}

????fscanf(fp1,"%d",a);//从输入文件读取一个整数

????b=fgetc(fp1);//从输入文件读取一个字符

????fgets(c,100,fp1);//从输入文件读取一行字符串

????

????printf("%ld",ftell(fp1));//输出fp1指针当前位置相对于文件首的偏移字节数

????

????fputs(c,fp2);//向输出文件写入一行字符串

????fputc(b,fp2);//向输出文件写入一个字符

????fprintf(fp2,"%d",a);//向输出文件写入一个整数

????

????fclose(fp1);//关闭输入文件

????fclose(fp2);//关闭输出文件,相当于保存

????return?0;

}

C读取文件内容

程序你看看吧,有问题再问,满意请采纳:

无论你的文件里面有多少行数据,程序都会自动识别文件结尾

#includestdio.h

int?main()

{

????int?a1[600];??//?存的第一列数据,根据文件行数修改

????int?a2[600];??//?存的第二列数据,根据文件行数修改

????int?a3[600];??//?存的第三列数据,根据文件行数修改

????FILE*fp;

????int?k=0;

????int?i;

?????

????if((fp=fopen("test.in","r"))==NULL)????//?打开数据文件

????{

????????printf("cant?find?the?file!");

????????return?-1;

????}

????while(!feof(fp))?

????{

????????fscanf(fp,"%d?%d?%d",a1[k],a2[k],a3[k]);

????????k++;

????}

????????printf("读取文件后,数组内的结果显示:\n");

????for(i=0;ik;i++)?

????????printf("%d?%d?%d\n",a1[i],a2[i],a3[i]);

?

????fclose(fp);

????return?0;

}

(责任编辑:IT教学网)

更多