本文目录一览:
在c语言中,如何读取一个txt文件中的信息
一般来说在C语言中读取txt文件的信息有两种方法,一种是使用C语言标准文件I/O中的fopen()、fread()等等函数,一种是调用操作系统中的API函数,比如Windows上的ReadFile()、OpenFile()等等,现在操作系统一般都具备内存文件映射功能,对于大的txt文件,一般都使用这种方式操作。下面是一个使用C语言标准文件I/O操作文件的例子。
#includestdio.h
FILE*stream;
void main(void)
{
long l;
float fp;
char s[81];
char c;
stream=fopen("fscanf.out","w+");
if(stream==NULL)
printf("Thefilefscanf.outwasnotopened\n");
else
{
fprintf(stream,"%s%ld%f%c","hello world",
65000,3.14159,'x');
/*Setpointertobeginningoffile:*/
fseek(stream,0L,SEEK_SET);
/*Readdatabackfromfile:*/
fscanf(stream,"%s",s);
fscanf(stream,"%ld",l);
fscanf(stream,"%f",fp);
fscanf(stream,"%c",c);
/*Outputdataread:*/
printf("%s\n",s);
printf("%ld\n",l);
printf("%f\n",fp);
printf("%c\n",c);
fclose(stream);
}
}
C语言中读取txt文件内容
楼主朋友,你的程序中的问题出在分配空间不足上。比如当你想让a[j]指向某段内存时,用的是
a[j]=(char *)malloc(sizeof(char)); 而到了后面你是要在这段内存中存入一个字符串的,所以就发生了越界。下面是我根据你的代码片段写的一个测试程序,经过修改应该没问题了。
#include stdio.h
#include stdlib.h
int main (void)
{
char path[]="12345.txt";
FILE *create;
if((create=fopen(path,"r"))!=NULL)
{
int j; char **a;
a=(char **)malloc(100*sizeof(char*)); //此处如果只申请一个char *大小的空间时,
//你以后的a[j]往哪里放?此处的100是假设你的文件中有100行信息。如果超过100还得多分配
for (j=0;;j++)
{
a[j]=(char *)malloc(10000*sizeof(char)); //此处只申请一个字符的空间,后面读取
//长度为10000的字符串就没地方存放了
fgets(a[j],10000,create);
printf("%s",a[j]); //测试读取是否成功,将文件中信息显示到屏幕上
if(feof(create)!=0)
{
for(;j=0;j--)
free(a[j]);
break;
}
}
free(a);
}
else
printf("Fail to open the file.\n");
fclose(create);
printf("\n");
}
c语言从txt中读取数据
你的程序我已经调试过了,主要改动:
if((p=fopen("e:\\stu.txt","r"))==NULL)/*你建的txt文档不是二进制文件,二进制文件要通过程序输入,读出来是乱码的,你能读出来的是ASCII文件*/
fscanf(p,"%s%d",stu[i].name,stu[i].num);/*一般操作文本文档是用fscanf()和fprintf()的*/
printf("%s %d\n",stu[i].name,stu[i].num);/*注意%s和%d之间是有空格的,不然运行出来的结果和原文件是有差别的,细节决定成败,考试经常考的*/
运行结果和你的stu.txt完全相同!希望能够帮到你!
C语言中如何读取txt文件中指定的数据
//其中的in.txt就是你要读取数据的文件,当然把它和程序放在同一目录
-------------------------------------
#include
int
main()
{
int
data;
file
*fp=fopen("in.txt","r");
if(!fp)
{
printf("can't
open
file\n");
return
-1;
}
while(!feof(fp))
{
fscanf(fp,"%d",data);
printf("%4d",data);
}
printf("\n");
fclose(fp);
return
0;
}
C语言如何实现对txt文件的读取和写入
1、使用VS新建空工程,直接点击确定,如下所示。
2、新建c文件,用于C语言编译器,输入main.c文件,如下所示。
3、参考代码:
#include stdio.h
int main()
{
//下面是写数据,将数字0~9写入到data.txt文件中
FILE *fpWrite=fopen("data.txt","w");
if(fpWrite==NULL)
{
return 0;
}
for(int i=0;i10;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;i10;i++)
{
fscanf(fpRead,"%d ",a[i]);
printf("%d ",a[i]);
}
getchar();//等待
return 1;
}
4、编译完成后,运行exe程序,执行后显示console程序。