История изменений
Исправление LINUX-ORG-RU, (текущая версия) :
#include <stdio.h>
#include <string.h>
int main(int argc, char *argv[])
{
FILE * file = fopen("conf.txt","r");
char string[1024];
int number,fakenum;
float realnum;
fseek(file,0,SEEK_END);
size_t filesize = ftell(file);
fseek(file,0,SEEK_SET);
while(ftell(file) != filesize)
{
if(fscanf(file,"%s",string)==1)
{
if(sscanf(string,"%d.%d",&number,&fakenum) == 2)
{
sscanf(string,"%f",&realnum);
printf("[FLOAT] -> %f\n",realnum);
}else if(sscanf(string,"%d",&number) == 1)
{
printf("[INT] -> %d\n",number);
}else{
printf("[STR] -> %s\n",string);
}
memset(string,0,1024);
}
}
fclose(file);
}
только запись типа .8
будет как строка.
Исходная версия LINUX-ORG-RU, :
#include <stdio.h>
#include <string.h>
int main(int argc, char *argv[])
{
FILE * file = fopen("conf.txt","r");
char string[1024];
int number,fakenum;
float realnum;
fseek(file,0,SEEK_END);
size_t filesize = ftell(file);
fseek(file,0,SEEK_SET);
while(ftell(file) != filesize)
{
if(fscanf(file,"%s",string)==1)
{
if(sscanf(string,"%d.%d",&number,&fakenum) == 2)
{
sscanf(string,"%f",&realnum);
printf("[FLOAT] -> %f\n",realnum);
}else if(sscanf(string,"%d",&number) == 1)
{
printf("[INT] -> %d\n",number);
}else{
printf("[STR] -> %s\n",string);
}
memset(string,0,1024);
}
}
fclose(file);
}