У меня есть файл с радиочастотами этого типа
Radio One 104.3
Radio Two 106.3
И я должен передать программе название радио или частоты.Если я передаю название радиоприемника или число с плавающей точкой, оно идет по ошибке сегментации.Я должен использовать спецификатор %[^set]
, чтобы найти название радио в кассете, которую я передаю в терминале частоту.Как я могу это сделать?
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
int main(int argc, char *argv[]){
FILE *in;
in = fopen("frequenze.txt", "r");
char radio[100];
float frequenza;
if(isalpha(argv[1]) != 0){
while(fgets(radio, 100, in) == radio){
if(strncmp(argv[1], radio, strlen(argv[1])) == 0){
printf("%s\n", radio);
}
}
}
if(isdigit(argv[1]) != 0){
while(fscanf(in, "%[^%f]", &frequenza) == 1){
if(frequenza == atof(argv[1])){
fgets(radio, 100, in);
printf("%s\n", radio);
}
}
}
return 0;
}