Я пытаюсь выучить Аду. В чем разница между Put и Put_line? Я думаю, что вижу их как взаимозаменяемые, но не могу это подтвердить.
begin
Put("Please type in your name: ");
get_line(yourName, Length);
New_Line;
Put(yourName(1..Length));
Put(" landed on an alien planet and was attacked by 50 aliens. ");
Put(yourName(1..Length));
Put(" fought bravely and killed 12 attackers, ");
Put("after which the reamining aliens fled. ");
Put(yourName(1..Length));
Put(" was able to crawl back to his ship" );
Put(" where his medical officer successfully treated his wounds.");
end Short_Story2;
Put_line
выводит свой вход и завершает линию, Put
- нет. Следовательно, Put_Line("This"); Put_Line("That");
производит
This
That
Пока Put("This"); Put("That");
производит
ThisThat
В этом есть смысл. Но я хочу привести образец кода Ada, который как бы противоречит вашему ответу. Но мой код не выглядит аккуратно читаемым. Я поставлю это в свой первоначальный вопрос.
Сделай это; Я постараюсь помочь ответить на ваши вопросы.
Когда я запускаю исполняемый файл, этот вывод разбивается на строки (4 из них), я бы подумал, что это будет одна длинная строка. Окно командной строки Windows выполняет такое форматирование?
Это одна длинная линия; окно терминала обрабатывает переполнение строки путем перехода к следующей строке. Попробуйте использовать более короткие и длинные имена.
Саймон, я попробую.
Привет, ребята. Я попробовал несколько тестов Put / Put_Line и увидел результаты, как заявил Shark8. Извините, я сомневался в вас, но мне понравилось тестировать. Спасибо за помощь Shark8 и Саймону Райту.
По какой-то причине при использовании Put последняя строка тоже имеет разрыв строки. Так что его ThisThat\n
вместо ThisThat
@MarcelHernandez - если это последний вывод [в стандартный вывод] программы, IIRC, среда выполнения исправляет ситуацию с помощью новой строки, чтобы вы не разбивали приглашение на вывод: Some-outputC:\>
(или как там ваше приглашение) .
Не понимаю, где и как возникает противоречие.