Aujourd’hui on voit comment écrire un message centré horizontalement et verticalement, comment lire une chaîne de caractères, et comment être tranquille avec les caractères non ASCII.

Voici un programme qui montre tout ça:

require 'curses'
include Curses

message = "Enter a string: "

begin
  init_screen
  setpos(lines / 2, (cols - message.size) / 2)
  addstr(message)
  str = getstr
  setpos(lines - 2, 0)
  addstr(sprintf("You entered: %s", str))
  getch
ensure
  close_screen
end

Quelques brèves explications maintenant:

Tout d’abord, on affiche un message centré ainsi:

  setpos(lines / 2, (cols - message.size) / 2)
  addstr(message)

Pour lire une chaîne de caractères, on utilise getstr:

  str = getstr

Puis on affiche ce qu’on vient de lire sur l’avant-dernière ligne du terminal:

  setpos(lines - 2, 0)
  addstr(sprintf("You entered: %s", str))

Le sprintf, qui vous rappelera des choses si vous avez fait du C, est ce que j’ai trouvé de mieux pour ne pas avoir de soucis avec les caractères non ASCII.

À demain.