int main(int ac, char *pav[])
{
if (ac!=2){
printf("程序名 要读取的文件名\n")
printf("test.exe 1.txt\n")
return 0
}
FILE *fp = fopen(pav[1],"r+")
if(fp == 0)
{
printf("fail to open the file1 !\n")
return 0
}
char buf[256] = {0}
while(!feof(fp))//判断文件是否已结束
{
fgets(buf,256,fp)
}
printf(buf)
return 0
}
一、编程思路。1 以文本方式打开文件。
3 判断fscanf的返回值,如果显示到达文件结尾,退出输入。
4 关闭文件。
5 使用数据。
二、代码实现。
设定文件名为in.txt, 存有一系列整型数据,以空格或换行分隔。
代码可以写作:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
int main()
{
int v[100]//开一个足够大的数组。
int i = 0, j
FILE *fp//文件指针
fp = fopen("in.txt", "r")//以文本方式打开文件。
if(fp == NULL) //打开文件出错。
return -1
while(fscanf(fp, "%d", &v[i]) != EOF) //读取数据到数组,直到文件结尾(返回EOF)
i++
fclose(fp)//关闭文件
for(j = 0j <ij ++)//循环输出数组元素。
{
printf("%d ", v[j])
}
return 0
}
当文件内容为:
1 35 6 8 9 9
10 123 34
76 54 98
程序输出:
1 35 6 8 9 9 10 123 34 76 54 98
#include<stdio.h>
#include<string.h>
#define M 100//最大行数
int main()
{
FILE *fp=NULL
int nums[M],age[M],i=0,n1,n2,len=0
char name[M][10],str[10]
fp=fopen("c:\\test.data","r")
while(fscanf(fp,"%d%s%d",&n1,str,&n2)!=-1)
{
nums[i]=n1
strcpy(name[i],str)
age[i]=n2
i++
len++
}
for(i=0i<leni++)
printf("%d %s %d\n",nums[i],name[i],age[i])
return 0
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)