我正在尝试从.txt文件中扫描两个带有连字符的浮点数。如果连字符被删除,代码可以工作,但我正在为学校目的做一份工作,并且需要连字符。
该函数应该将文件中的信息加载到数组中。
以下是代码:
#include <stdio.h>
#include <estruturas.h>
#include <funcoes.h>
void loadmedicos(medico *pmedico,int total){
FILE *f;
medico x; //medico is a typedefined struct with 2 floats
f=fopen("medicos.txt","rt");
if(f==NULL){
printf("Ocorreu um erro ao abrir 'medicos.txt'!\n\n");
}
for(int i=0;i<total;i++){
fscanf(f,"%f",&x.horarioentrada);
fscanf(f,"%f",&x.horariosaida);
*(pmedico+i)=x;
}
fclose(f);
}
如果.txt包含:
19.30 20.30
然后它将正确读取并输出这些数字。如果文件包含:
19.30-20.30
不会读取第二个数字。为什么这样,我该如何解决?
答案 0 :(得分:1)
您需要在scanf
格式中加入“ - ”字符。这样,该字符就会跳过:
fscanf(f, "%f-%f", &x.horarioentrada, &x.horariosaida);