读取文件的代码C(读取文件的代码Python)
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;
}