Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[C] Wpisanie danych z pliku tekstowego do struktury

Ostatnio zmodyfikowano 2017-07-08 16:14
Autor Wiadomość
nightrrayy
Temat założony przez niniejszego użytkownika
[C] Wpisanie danych z pliku tekstowego do struktury
» 2017-07-08 16:14:32
Witam,
Mam problem z wpisaniem danych z pliku tekstowego do struktury.

Nazwa pliku to wyluskanie-adresu.txt

Plik tekstowy u mnie jest taki :

Cell 01 - Address:
Channel:
Frequency: (Channel)
Quality = Signal level =
ESSID:
Extra: Last beacon:
Oczywiście jest to zapełnione odpowiednimi wartościami. Chodzi tylko o zamysł. I takich połączeń może być sporo w zależności od tego w jakim momencie uruchomię swoją aplikację.

Kod jaki do tej pory wymyśliłem jest taki :

C/C++
#include <stdio.h>

int countlines( char * filename ); // funkcja do zliczania linijek w tekscie




int main()
{
   
   
   
    int i = 0;
   
    int b = countlines( "wyluskanie-adresu.txt" );
   
    struct polaczenie {
        int cell;
        char mac[ 15 ];
        int channel;
        double frequency;
        int quality;
        char essid;
        double last_beacon;
    } wifi[( b - 1 ) / 6 ];
   
   
    FILE * emp_file;
    emp_file = fopen( "wyluskanie-adresu.txt", "r" );
   
    do {
        int n =
        fscanf( emp_file, "%d %s %d %d %d %s %f", & wifi[ i ].cell,
        wifi[ i ].mac, & wifi[ i ].channel,
        & wifi[ i ].frequency, & wifi[ i ].quality,
        & wifi[ i ].essid, & wifi[ i ].last_beacon );
        //printf("i = %d, n = %d\n", i, n);
        i++;
    } while( feof( emp_file ) == 0 );
   
    for( int k = 0; k < i; k++ )
    {
        printf( "%d,%s\n", wifi[ k ].cell, wifi[ k ].mac );
    }
   
    fclose( emp_file );
   
    return 0;
}


int countlines( char * filename )
{
   
    FILE * fp = fopen( filename, "r" ); // otwarcie pliku tylko do odczytu ("r")
    int ch = 0; // bufor na znaki
    int lines = 0; // licznik linii
   
    if( fp == NULL ) // jesli plik tekstowy jest pusty
    {
        return 0;
    }
   
   
    while( !feof( fp ) )
    {
        ch = fgetc( fp );
        if( ch == '\n' )
        {
            lines++;
        }
    }
    fclose( fp ); // zamkniecie pliku tekstowego
    return lines;
}

Niestety nie działa on tak jak powinien. Zapętla się a chciałbym żeby te dane były wpisane do stuktur i tam przechowywane.
P-163126
« 1 »
  Strona 1 z 1