Вам нужно иметь состояние, когда вы читаете значения.
, чтобы начать с, я предлагаю вместо этого следующую команду:
mkhuffmantree -s -f ~/example/dir/source.txt -o ~/example/dir/
Затем, когда вы нажимаете -f, вы устанавливаетеНовая переменная, скажем, «nextParam» для SOURCE (может быть, enum? Может также быть конечным статическим значением типа int, например, 1), когда вы нажмете -o и установите для «nextParam» значение OUTPUT
Затем ДО вашего переключателя, но внутрицикл (не забудьте добавить скобки, которые вы уже должны были поставить после выражения for!), вы хотите что-то вроде:
if(nextParam == SOURCE) {
fromFile = val;
nextParam = NONE; // Reset so following params aren't sent to source
continue; // This is not a switch so it won't match anything else
}
повторить для OUTPUT
Другой способ сделать это:
Если вы не хотите использовать -o, есть другой подход, которому не нужны -f или -o, то есть поставить в нижнюю часть цикла for окончательный «else»«который помещает значение в« источник », если источник не имеет значения, в этом случае вы помещаете его в файл outputFile.
Если вы сделаете это таким образом, вы можете просто полностью избавиться от -f, это бессмысленно, посколькувы просто говорите, что два значения, которые не совпадают как SWIпредполагается, что tches - это ваши файлы.