Во-первых, вам нужно убедиться, что вы действительно измеряете свой выход, а не комбинированный вход и выход. Самый простой способ сделать это - перенаправить ваш вывод в файл. Если предположить, что название программы является «a.out»
a.out > output.txt
или эквивалент собирается дать вам файл только с выходом в него. Если это точно так же, как то, что вы отправили, то вы знаете, что не ваша консоль/терминал пытается рисовать возвращаемые каретки и строки, которые вы вводите, это консоль, пытающаяся нарисовать возврат каретки и линии, программа распечатывается.
После того, как у вас есть хорошее сцепление с дорогой, на которой входной/выходной поток печати, что, то помните, что если args[i]
содержит \n
символ новой строки, это будет распечатать его так же, как если бы она содержала слово hello
. Возможно, вам придется выследить источник новой строки и исправить ее там. Простым способом является подавление печати, если args[i]
соответствует нежелательному тексту; однако такой техники, как правило, следует избегать в программах, отличных от игрушек, поскольку в конечном итоге он позволяет использовать плохие данные в переменных, а это означает, что с течением времени становится более сложным (если не невозможно).
Можем ли мы увидеть код, который заполняет args? – QuestionC
Я испортил цикл while при хранении жетонов. Теперь он отлично работает – minionhacking