Последний вопрос на ночь. Я стараюсь не публиковать более одного раза за борьбу, ха-ха...
Этот немного проще.
У меня есть текстовый файл с серией упорядоченных чисел в первых 8 строках. Каждая строка после — это определенная фраза, такая как «КУПИТЬ ПРЕДМЕТ» или «ПОЗИЦИОННЫЙ ПРЕДМЕТ», за которой следует целое число (есть несколько фраз, но меня интересует только одна). По сути, я пытаюсь создать цикл for или while, в котором я могу обнаружить фразу в документе, установить указатель на конец фразы, а затем выполнить fscanf целое число справа от фразы. Единственная проблема, с которой я сталкиваюсь, - это получить указатель на конец конкретной фразы, а затем прочитать число. А также то, что фраза повторяется на разных строках и я не хочу, чтобы значения брались все сразу.
Я уверен, что могу сделать простой
while (!feof(//function for reading phrase)) {
fscanf("%d", &value);
//rest of function
И это было бы так. Но я пробовал fseek и fget, и ничто действительно не могло помочь получить указатель на место, которое мне нужно, без предустановленного места, куда идти. Входной файл каждый раз будет разным, поэтому я не могу просто сказать, чтобы он опускался на 1024 пробела или что-то в этом роде. Просто не знаю, как бы вы вообще пошли на это...
Также ниже приведен пример входного файла.
75 75 908
10 10
18 23.10 10.09
70 5 15
8 100 20 28.99
30 40 50 60
4 6 8 8 5 5 5 6 7 10
10
BUY ITEM 8
BUY ITEM 10
AWARD ITEM 7
BUY ITEM 1
BUY ITEM 3
AWARD ITEM 9
BUY ITEM 7
RETURN ITEM 8
Большая признательность за чью-либо помощь.
fgets()
, чтобы получить всю строку, а затем либоfscanf()
, либоstrtol()
, либо что-то в этом роде, чтобы получить номер. Если ваш файл всегда соответствует этому формату, и вы знаете, что ваша строка начинается, например, сBUY ITEM
, за которым следует пробел, то вы будете знать, что ваш номер начинается с 10-го символа строки. - person Crowman   schedule 27.09.2014