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 :
#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.