fscanf读出文件的变量(C语言从文件中读取数据的问题)

本文目录
- C语言从文件中读取数据的问题
- fscanf()函数读取的文件内如果是字符串需要加\0吗
- C语言中如何从文件读取数据并赋值到变量
- fscanf(fp,“%d“,&x);该函数怎知每次读取多少字节长度的数据呢是判断变量x的类型吗
- 用fscanf读取文件中的一个一个数据,并赋值给变量,但是结果不对,请看代码
- c语言中如何使用txt文件中的数据变量
- fscanf读取文件整形数据
- c语言从文件读取数据
C语言从文件中读取数据的问题
首先 fscanf 是一个函数,它的具体形式如下;
int fscanf( FILE *stream, const char *format ... );
他的第一个参数是一个指向FILE结构体的指针;在您的程序中,stdin是c语言中的关键字,关键字就是系统中已经定义的标示符,它的原始定义是FILE * stdin;它本身就是FILE类型的指针,系统已经帮你定义好了,重复定义当然会出错;
对于Retcode = 3的原因是
fscanf的返回值说起,它的返回的是你所传递给他的变量中成功赋值的变量的个数;它的值是3,只是能说是一种偶然,因为你上面的编程方法是不对的,你首先应该把题目给定的值写到Text2.in中去然后才能够再去读它,你那样编直接就读Text2.in文件程序崩溃才对,得到3也是时一个错误的值;
希望对你有帮助!
fscanf()函数读取的文件内如果是字符串需要加\0吗
不需要。
因为输入格式
%d
%s
%s
表明3个数据之间的
分隔符
是
空白
(空格,tab,
新行符...)。
所以
读
i,
读入
0,到空格为止。
读
s1,
读入
question
,到空格为止。
读
s3,
读入
answer
。
s1
和
s2
的
char
内,字符串结尾处,自动添加了\0
追问:
如果用char*呢
追答:
char
*
是指针,没有字符串存储单元。
你要么给它动态分配,要么初始化指向有存储单元的char
变量。
-------------------------------
char
a;
char
*s1=a,*s2=b;
//
初始化
int
i;
FILE
*fp;
fp
=
fopen("abc.txt","r");
fscanf(fp,
"%d
%s
%s",&i,s1,s2);
fclose(fp);
printf("%s\n",a);
printf("%s\n",b);
C语言中如何从文件读取数据并赋值到变量
里面的文字如果是固定的 那么可以
fscanf(fp, "MaxCustSingleLine%d",&a);
这样a=11 其它类似。
如果想不考虑文字 那么可以
fscanf("%*s%d%*s%d%*s%d%*s%d%*s%d%*s%d%*s%d",&a,&b,&c,&d,&e,&f,&g);
这里 a b c d e f g分别就是那七个数值。
fscanf(fp,“%d“,&x);该函数怎知每次读取多少字节长度的数据呢是判断变量x的类型吗
fscanf()函数不会知道要读多少字节的数据,碰到空格或者不匹配的字符才停止
比如文件内容是:
12345678912345
fscanf(fp,"%d",&x);
会读到这个数字结束导致x 溢出
如果文件内容是
123abc
或者是
123 234
那么x就是123
所以用fscanf()读取文件时要事先知道文件的数据组织方式
用fscanf读取文件中的一个一个数据,并赋值给变量,但是结果不对,请看代码
int i;
for(i=0;!feof(fp);++i){
fscanf(fp,"%lf%lf%lf",&ax);
printf("%lf %lf %lf\n",ax);
}
c语言中如何使用txt文件中的数据变量
使用fopen,fscanf函数可以实现从txt文件当中读取内容,进行简单操作。
1.fopen的函数原型:FILE
*
fopen(const
char
*
path,const
char
*
mode);
fopen函数的第一个参数是文件路径,第二个参数是打开方式,有以下几种方式:
r
以只读方式打开文件,该文件必须存在。
r+
以可读写方式打开文件,该文件必须存在。
rb+
读写打开一个二进制文件,允许读数据。
rw+
读写打开一个文本文件,允许读和写。
w
打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。
w+
打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。
a
以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。(EOF符保留)
a+
以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。
(原来的EOF符不保留)
wb
只写打开或新建一个二进制文件;只允许写数据。
wb+
读写打开或建立一个二进制文件,允许读和写。
wt+
读写打开或着建立一个文本文件;允许读写。
at+
读写打开一个文本文件,允许读或在文本末追加数据。
ab+
读写打开一个二进制文件,允许读或在文件末追加数据。
上述的形态字符串都可以再加一个b字符,如rb、w+b或ab+等组合,加入b
字符用来告诉函数库打开的文件为二进制文件,而非纯文字文件。
返回值:文件顺利打开后,指向该流的文件指针就会被返回。如果文件打开失败则返回NULL,并把错误代码存在errno中。
2.例程:
#include
#define F_PATH "d:\\myfile\\file.dat"
char c;
int main(){
FILE*fp=NULL;//需要注意
fp=fopen(F_PATH,"r");
if(NULL==fp) return -1;//要返回错误代码
while(fscanf(fp,"%c",&c)!=EOF) printf("%c",c); //从文本中读入并在控制台打印出来
fclose(fp);
fp=NULL;//需要指向空,否则会指向原打开文件地址
return 0;
}
fscanf读取文件整形数据
100002 -- 数值大,要用 long int 型变量.
9个用逗号为分格符,1个没有
FILE *fin;
long int a;
int i;
fin = fopen(....);
for (i=0;i《=8;i++) fscanf(fin,"%d,",&a);
fscanf(fin,"%d",&a);
for (i=0;i《=8;i++) fscanf(fin,"%d,",&b);
fscanf(fin,"%d",&b);
for (i=0;i《=8;i++) fscanf(fin,"%d,",&c);
fscanf(fin,"%d",&c);
c语言从文件读取数据
四个整型 一个浮点型, 所以 用数组的话 只能是用浮点型数组, 即float a;
或者用五个变量, 可以是四个整型,一个浮点型. int a,b,d,e; float c;
打开文件部分相同.
FILE *fp = fopen("input1.txt", "r");
读取数据, 数组方式:
int i;
float a;
fscanf(fp, "%f,", &a);
for(i = 1; i 《5; i ++)
fscanf(fp, "%f",&a);
变量方式:
int a,b,d,e;
float c;
fscanf(fp,"%d,%d%f%d%d", &a,&b,&c,&d,&e);

更多文章:
jfreechart 极坐标设置线条颜色(各位,怎样修改 matlab 中极坐标生成的图像线条的宽度求程序指导! 谢谢了!!!)
2025年8月9日 12:00
appear后面可以加名词吗(高考英语备考之 appear的用法)
2025年9月17日 03:30
django框架安装过程(京东云擎怎么搭建django 框架)
2025年7月24日 02:00
index加match函数出错(excel中INDEX和MATCH函数出现的问题)
2026年1月3日 23:00
routes插件(模拟火车2019机车插件和线路插件安装在哪里怎么激活求大神解答!!)
2025年7月11日 16:45
手机java运行库下载(三星C3300K手机下载JAVA游戏详细方法)
2026年1月12日 09:00
雅马哈音响portable(为什么存储卡里的歌在可插卡蓝牙音响上有些能放,有些不能放)
2026年8月5日 16:15
易语言源码忘记保存奔溃怎么找回(易语言源码丢失,用什么恢复软件恢复后可以用)
2025年12月9日 05:45















