Мне нужно прочитать в форматированном файле, который выглядит примерно так.Есть ли более эффективный способ чтения форматированного файла в C, чем я сделал?
Код: HARK
Имя: Oscar
MRTE: Поезд
и т.д.
На данный момент мой код выглядит следующим образом.
FILE *file;
char unneeded[10];
char whitespace[2];
char actual[10];
file = fopen("scannertest.txt","r");
fscanf(file,"%s",unneeded); // this is the identifier and the colon (code:)
fscanf(file,"%[ ]",whitespace); // this takes in the white space after the colon.
fscanf(file,"%s",actual); // this is the value I actually need.
/**
* Do stuff with the actual variable
**/
fclose(file);
Этот способ работает для меня, но я не думаю, что пишу три fscanf() 's для каждой строки в текстовом файле это лучший способ сделать это, тем более, что я буду делать это в цикле позже.
Я пытался делать это так:
fscanf(file, "%s %[ ] %s",unneeded,whitespace,real);
Однако это дало мне странные символы, когда я пытался напечатать выход.
я попытался использовать sscanf на fgets() У меня было это так. fgets (строка, 20, файл); sscanf (строка, «% s% []% s, ненужные, пробельные, фактические) Но это все равно дало мне ту же проблему, странные символы, переходящие в переменные. –
Звучит скорее как переполнение буфера, если вы видите странные символы. Обязательно проверьте возвращаемое значение sscanf, так что вы знаете, что он действительно что-то читал. – nos