c语言fscanf的用法
A. c语言 fscanf函数使用
没打看懂你说的什么意思, 只是感觉你写的有个地方有问题,你在往文件中写的时候fprintf(f1,"%d\n",temp);是每个字后面都一个回车, 而在读的时候又按照fscanf(f1,"%d",&temp); 这种没有回车的形式读的 ,当然会出问题了, 我帮着改了一下, 你看下行不...
#include <stdio.h>
#include <stdlib.h>
void main()
{
int i;
char temp;
FILE *f1; // source file (bmp)
if((f1=fopen("write.hex","w"))==NULL)
{
printf("f1 error\n");
exit(0);
}
for (i=0;i<8;i++)
{
temp = i;
fprintf(f1,"%d",temp);
}
fclose(f1);
if((f1=fopen("write.hex","r"))==NULL)
{
printf("f1 error\n");
exit(0);
}
for (i=0;i<100;i++)
fscanf(f1,"%d",&temp);
fclose(f1);
}
B. C语言中fscanf()的用法
功 能: 从一个流中执行格式化输入\x0d\x0a 用 法: int fscanf(FILE *stream, char *format,[argument...]);\x0d\x0a int fscanf(文件指针,格式字符串,输入列表);\x0d\x0a 返回值:整型,数值等于[argument...]的个数\x0d\x0a 程序例:\x0d\x0a #include \x0d\x0a #include \x0d\x0a int main(void)\x0d\x0a {\x0d\x0a int i;\x0d\x0a printf("Input an integer: ");\x0d\x0a if (fscanf(stdin, "%d", &i))\x0d\x0a printf("The integer read was: %d\n",\x0d\x0a i);\x0d\x0a else\x0d\x0a {\x0d\x0a fprintf(stderr, "Error reading an \\x0d\x0a integer from stdin.\n");\x0d\x0a exit(1);\x0d\x0a }\x0d\x0a return 0;\x0d\x0a }\x0d\x0a 返回EOF如果读取到文件结尾。
C. c语言printf(),fscanf()
1、在TC中没有printf(/f);这种有法;
2、fscanf(%[^n],str);
应该是scanf(“%[^\n]\n“,str);
fscanf的原型是int
fscanf(文件指针,格式字符串,输入列表);
scanf(“%[^\n]\n“,str);的意思是从终端上读取一整行输入。
[...]的用法和s一样,只读取[
]中的字符,^是反转的意思,^后的字符被当作是结束字符。
D. C语言关于fscanf函数
fprintf(fp,"%s,%c,%d,%f",str,a,
c,
b);
这个输出格式表明
你的文件1.txt
里的数据
是用
逗号
分
隔。
if((fp
=
fopen("1.txt","r"))==NULL)
你要打开
读
这个
用
逗号为
分隔符
的文件。
fscanf(fp,"%s,%c,%d,%f",
str,
&a,
&c,
&b);
漏写
str,
给你补上,但
这仍不能解决
%s,
的逗号分隔问题。
必须
用下面格式读取逗号分隔的数据:
fscanf(fp,"%[^,],%c,%d,%f",
str,
&a,
&c,
&b);
======================================
假如文件里的数据
用
空白
分隔,不用
逗号,日子就好过得多:
fprintf(fp,"%s
%c
%d
%f",str,a,
c,
b);
fscanf(fp,"%s
%c
%d
%f",
str,
&a,
&c,
&b);
E. c语言中的fscanf()函数
是以空格分隔的。
fscanf会返回读取成功的数据个数,你可以用
int ans=fscanf(fp,"%d%d",&a,&b);
的方法,看ans是否为2,是则表示输入成功。
文件指针是自动递增的