本文目录一览:
C语言读取txt文件内容
#include stdio.h
#include stdlib.h
int main()
{
FILE *file;
char *data;
int fileSize;
// 打开文件“D:\a.txt”
file = fopen("D:\\a.txt", "r");
// 获得文件大小
fseek(file, 0, SEEK_END);
fileSize = ftell(file);
fseek(file, 0, SEEK_SET);
// 分配内存
data = (char*)malloc(fileSize + 1);
// 读取文件
fread(data, sizeof(char), fileSize, file);
data[fileSize] = 0;
// 输出内容(你想对内容干什么都可以了)
printf("%s", data);
return 0;
}
c语言在txt查找文本,返回相同的行的数据
#includestdio.h
struct RECs { unsigned int uRoomID,uID,uBoth; char sStyle[20]; };
void main() { struct RECs a; FILE *fp; char buffer[256]; unsigned int r; int b;
if ( fp=fopen("c:\\room.txt","r") ) {
while ( 1 ) {
printf("请输入ROOM ID: "); scanf("%u",r); if ( r==0 ) break;
fseek(fp,0L,SEEK_SET); b=0;
while ( !feof(fp) ) {
fgets(buffer,255,fp); sscanf("%u%s%u%u",a.uRoomID,a.sStyle,a.uID,a.uBoth);
if ( uRoomID==r ) {
printf("ID=%u,STYLE=%s,ID=%u,BOTH=%u\n",a.uRoomID,a.sStyle,a.uID,a.uBoth);
b=1;
break;
}
}
if ( b==0 ) printf("没有该房间记录。\n"); else printf("\n");
}
fclose(fp);
} else printf("无法打开文件读取数据。\n");
}
C语言如何读取txt文本里面的内容?
FILE *fp = fopen("D:\\1.txt", "r");
int a,b;
while(fscanf(fp, "%d,%d") != EOF)
printf("%d %d\n", a,b);
fclose(fp);
fscanf(fp, "%d,%d")
这个是读文件的函数。
在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");
}