C语言如何读取C:\a.txt中的数据,并赋值到变量?
4个回答
展开全部
在读取数据前,最好知道数据的存放格式,举例来说:
c:\a.txt的内容是
00001 张小明 53 80.5 88.5
00002 李岳 90.5 89 67.5
...
即每行一个记录,分别存放:编号、姓名、成绩1、成绩2、成绩3
编号是整型的数据,姓名是字符串,成绩都是浮点数,各个数据之间以空格分割
#include<stdio.h>
void main()
{ FILE *fp;
int number[100],n,i;
char name[100][10],buffer[256];
float score[100][3];
if ( fp=fopen("c:\\a.txt","r") )
{ for ( i=0,n=0;i<100;i++ )
{ fgets(buffer,256,fp);
sscanf(buffer,"%d %s %f %f %f",&number[i],name[i],&score[i][0],&score[i][1],&score[i][2]);
n++;
if ( feof(fp) ) break;
}
fclose(fp);
}
if ( n>0 )
for ( i=0;i<n;i++ )
printf("%05d %10s %5.1f %5.1f %5.1f\n",number[i],name[i],score[i][0],score[i][1],score[i][2]);
}
c:\a.txt的内容是
00001 张小明 53 80.5 88.5
00002 李岳 90.5 89 67.5
...
即每行一个记录,分别存放:编号、姓名、成绩1、成绩2、成绩3
编号是整型的数据,姓名是字符串,成绩都是浮点数,各个数据之间以空格分割
#include<stdio.h>
void main()
{ FILE *fp;
int number[100],n,i;
char name[100][10],buffer[256];
float score[100][3];
if ( fp=fopen("c:\\a.txt","r") )
{ for ( i=0,n=0;i<100;i++ )
{ fgets(buffer,256,fp);
sscanf(buffer,"%d %s %f %f %f",&number[i],name[i],&score[i][0],&score[i][1],&score[i][2]);
n++;
if ( feof(fp) ) break;
}
fclose(fp);
}
if ( n>0 )
for ( i=0;i<n;i++ )
printf("%05d %10s %5.1f %5.1f %5.1f\n",number[i],name[i],score[i][0],score[i][1],score[i][2]);
}
更多追问追答
追问
给一个最简单的。谢谢,刚刚从vb转c。谢谢!
追答
那要看你的文件中数据是怎么存的了。
这个程序已经是比较简单的了。
把你的文件存储举出例子来看。
展开全部
int load(TEL t[])//函数1:从txt文件中获取学生信息
{
int i,n;
FILE *fp;
if((fp=fopen("shuju.txt","r+"))==NULL)/*打开文件*/
{
printf("不能打开文件\n"); /*不能打开*/
exit(0);
}
for(i=0;i<length;i++)
fscanf(fp,"%d %s %s %d %d %d %d", &t[i].num,&t[i].name,&t[i].sex,&t[i].egrade,&t[i].mgrade,&t[i].cgrade,&t[i].haoma); /*按格式读入记录*/
fclose(fp); /*关闭文件*/
printf("你已经从文件中正确读入数据!!!\n"); /*显示读入成功*/
return n; /*返回记录数*/
}
这是个类似的程序 把数据从txt传到10个结构体里面
{
int i,n;
FILE *fp;
if((fp=fopen("shuju.txt","r+"))==NULL)/*打开文件*/
{
printf("不能打开文件\n"); /*不能打开*/
exit(0);
}
for(i=0;i<length;i++)
fscanf(fp,"%d %s %s %d %d %d %d", &t[i].num,&t[i].name,&t[i].sex,&t[i].egrade,&t[i].mgrade,&t[i].cgrade,&t[i].haoma); /*按格式读入记录*/
fclose(fp); /*关闭文件*/
printf("你已经从文件中正确读入数据!!!\n"); /*显示读入成功*/
return n; /*返回记录数*/
}
这是个类似的程序 把数据从txt传到10个结构体里面
追问
给一个最简单的。谢谢,刚刚从vb转c。谢谢!
追答
上面的已经很简单了 具体可以看一下c语言书上的文件方面知识
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我来给出正解吧:
a)a=a+7
是赋值语句
正确
b)a=7+b+c,a++
这是一个赋值运算符和逗号运算符等组成的语句,因为赋值运算符的优先级高于逗号运算符,所以相当于(a=7+b+c),a++
而不是a=(7+b+c,a++)
c)int(12.3%4)
%不能出现小数,非法
d)a=a+7=c+b
赋值运算符的结合性是自右向左的,所以相当于两个语句
先a+7=c+b
再a=a+7
a+7不是个变量,不能作为被赋值的对象。
所以答案是a、b
a)a=a+7
是赋值语句
正确
b)a=7+b+c,a++
这是一个赋值运算符和逗号运算符等组成的语句,因为赋值运算符的优先级高于逗号运算符,所以相当于(a=7+b+c),a++
而不是a=(7+b+c,a++)
c)int(12.3%4)
%不能出现小数,非法
d)a=a+7=c+b
赋值运算符的结合性是自右向左的,所以相当于两个语句
先a+7=c+b
再a=a+7
a+7不是个变量,不能作为被赋值的对象。
所以答案是a、b
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
fopen() fread() fclose()标准方法,还有很多
更多追问追答
追问
完整代码,谢谢
追答
自己不会查函数?没msdn百度百科也行啊,老是别人给你写你学毛
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询