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以附加的方式打开只写文件。若文件不存在,则建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。
通用方法是使用sscanf,例如
#include <stdio.h>
int main()
{
char s1[]="12345",s2[]="-123.456"
int a
float b
sscanf(s1,"%d",&a)
sscanf(s2,"%f",&b)
printf("%d\n%.3f\n",a,b)
return 0
}
请点击输入图片描述
括号位置错了,==优先级比=高先执行,如果成功打开文件,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)}欢迎分享,转载请注明来源:内存溢出
评论列表(0条)