LINUX.ORG.RU

История изменений

Исправление 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);
}