voidmain()
{
FILE*fin
inta,b,c,d
chars[20]
floatf1,f2,f3,f4
fin=fopen("abc.txt","r")//打开
fscanf(fin,"%1d%1d%1d%1d",&a,&b,&c,&d)//按1位整型读前4个数
printf("a=%db=%dc=%dd=%d\n",a,b,c,d)
rewind(fin)//文件回绕到开始处
fscanf(fin,"%s",s)//按字符串读一串
printf("s=%s\n",s)
rewind(fin)//文件回绕到开始处
fscanf(fin,"%1f%1f%1f%1f",&f1,&f2,&f3,&f4)//按1位float型读前4个数
printf("%f%f%f%f\n",f1,f2,f3,f4)
flcose(fin)
}
abc.txt内容:
123456789
读到数组:
inty[20]
inti
fin=fopen("abc.txt","r")
for(i=0i<9i++)fscanf(fin,"%1d",&y[i])
扩展资料
C语言中文件的读取
fopen(打开文件)
相关函数open,fclose
表头文件#include<stdio.h>
定义函数FILE*fopen(constchar*path,constchar*mode)
函数说明参数路径包含包含打开的文件路径和文件名,参数模式字符串则代表着流形态。
模式有以下几种形态类别:
r+:可读写的文件,该文件必须存在。
w:只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。
w+:可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。
a以附加的方式打开只写文件。若文件不存在,则建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。
括号位置错了,==优先级比=高先执行,如果成功打开文件,fopen返回的不是NULL,所以和NULL比较结果为0,然后fp被赋为0,所以实际上没有读到内容 #include <stdio.h>main() { int achar *iFILE *fpif((fp=fopen("ANT.IN","r"))==NULL)/*这里修改一下*/ { printf("File can not open!") exit(1) } fgets(i,256,fp) fclose(fp)a=atoi(i)printf("%d",a)}可以通过fscanf,从文件中依次读取数据。当fscanf返回EOF时,表示读到文件结尾,这时停止读取即可。
以文件中存储的为空格分隔的整型字符为例,可以写作:
while(fscanf(fp,"%d",&n) != EOF)//从打开的文件指针fp指向的文件读数据,每次读一个整型,直至文件结尾。
printf("%d ", n)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)