像这种情况,有多种方法,最简单的方法是:
1.用"记事本"创建a.txt文件,保存在一个文件夹中,设保存在d:\之下
2.编写程序,并运行
#include
int main( )
{
int a[10][4]; /*假定不超过10行,每行一定有4个元素*/
int i,j;
FILE *fp;
/*打开文件*/
fp=fopen("d:\\a.txt","r"); /*假设a.txt在d盘根目录下*/
if(!fp)exit(0);
for(j=0;j<4;j++) /*假定有j行*/
for(i=0;i<4;i++)
fscanf(fp,"%d",&a[j][i]); /*读一个数据*/
/* 关闭文件 */
fclose(fp);
/*显示运行结果*/
for(j=0;j<4;j++) /*假定有j行*/
{for(i=0;i<4;i++)
printf("%4d",a[j][i]);
printf("\n");
}
return 0;
}
以上演示了文本文件的读写操作,供你参考.
在读写文件时,文件内部有一个"指针"会悄悄地变化(但你看不到),所以读一个数据后,再读可以得到下一个数据.
用C语言从txt文件中读取数据,可以使用C标准库文件自带的文件接口函数进行操作。
一、打开文件:
FILE
*fopen(const
char
*filename,
const
char
*mode);
因为txt文件为文本文件,
所以打开时选择的mode应为"r"或者"rt"。
二、读取文件:
读取文件应根据文件内容的格式,以及程序要求,选择读取文件的函数。可以使用一种,也可以几种混用。
常用的文件读取函数如下:
1、fgetc,
从文件中读取一个字节并返回。
适用于逐个字节读取。
2、
fgets,
从文件中读取一行。适用于整行读取。
3、fscanf,
格式化读取文件,
在已经清楚文件存储格式下,可以直接用fscanf把文件数据读取到对应类型的变量中。
4、fread,
整块读取文件,
对于txt文件比较少用。
三、关闭文件:
读取结束后,应调用fclose函数关闭文件。
#include
int main()
{
FILE *fp=NULL;
int a[160];
int i=0;
fp=fopen("data.txt","r");
if ( !fp )
{
printf("open file error\n");
return -1;
}
while( !feof(fp) )
{
if ( fscanf( fp , "%d" ,&a[i] ) !=1 )
break ;
i++;
fgetc(fp) ;//过滤掉分隔符
}
fclose(fp);
//以下倒序输出数据
printf("i=%d\n" , i );
while( --i >= 0 )
{
printf("%d," , a[i] );
if ( i %10 == 0 )
printf("\n") ;
}
return 0;
}
#include
void main()
{
FILE *fp;
fp=fopen("e:\\shao.txt","r");
int num,i=0,j;
int data[300];
while (!feof(fp))
{
fscanf(fp,"%d,",&num);
data[i++]=num;
}
for (j=0;j {
printf("%d ",data[j]);
}
}
输入重定向 参考一下书吧