用法:轮或碰int fscanf(FILE*stream,char*format,[argument...])解析:int fscanf(文件指针,格式字符串,输入列表)返回值: 类型是整型,成功读入的参数的个数。新建data.txt文件,存入3组坐标,运行程序并输出结果。
fscanf函数的用法
fscanf第一个参数需要一个文件指针,为了查看实验效果,这里先新建一个名为test.txt的文本文件,放在源代码团扒的文件夹,输入如下内容:
123
123.456
Hello world !
要对文件 *** 作,必须将该文件打开:
fp = fopen("test.txt", "r")
同时使用完毕后不要忘记使用fclose关闭文件。
test.txt第一行保存的是一个整数,所以可以使用fscanf先读取一个整数:
fscanf(fp, "%d", &num)
test.txt第二行保存了一个浮点数,按照浮点数的格式进行读取:
fscanf(fp, "%f", &fNum)
需要注意的是,由于浮点数位于第二行,所以要想读取这个浮点数,应当先把第一个数读完,否则读取的回事123.000000
同样可以使用类似的方法读取位于第三行的字符串:
fscanf(fp, "%s", str)
但是,从程序的运行结果发现,第三行存储的是Hello world !,而实际运行结果只有“Hello”,这表明fscanf遇到空格会终止本次读 *** 作。
当将fscanf第一个参数设定腊谈为stdin时,将实现和scanf函数相同的效果:
fp = stdin//设置fp为标准输入
fscanf(fp, "%d", &num)//从fp读取一个整数
fscanf(fp,"%d",&n)它的作用是从fp读取一个整数,存入n变量。
你就把它当作scanf("%d",&n)来理解就行了,只不过fscanf(fp,"%d",&n)是从fp文件读取,而scanf("%d",&n)是从键盘前做指读取,除此之外,两个函数是相同。
因为
for(i=0i<3i++) fprintf(fp,"%d",a[i])
将数组a的三个数字依次写入文件fp,并且数慧配字之间没有分胡谨隔符,所以这三个数字会连在一起,也就是123,这样,后面的fscanf()读取时,当然会读取出123这个数字,而不是1
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)