CMS-kursen

Läsa inmatning

Låt programmet ställa frågor och läsa svaren som användaren skriver i terminalen.

Läsa en rad med fgets

Ett program kan pausa och vänta på att användaren skriver något. Det som skrivs i terminalen kommer in via STDIN (standard input).

$input = trim(fgets(STDIN));
  • fgets(STDIN) läser en rad. Programmet väntar tills användaren trycker Enter.
  • trim() tar bort radbrytningen och eventuella mellanslag i början och slutet.

Prova

I din egen terminal pausar programmet vid varje fråga. I portalen går det inte att pausa, så där skriver du svaren i förväg i fältet Inmatning, ett svar per rad.

Kör också filen i din egen terminal och se skillnaden: där stannar programmet och väntar på dig.

Läsa flera rader

Vill du läsa allt som skrivs in, inte bara en rad, finns stream_get_contents:

$input = stream_get_contents(STDIN);

Då läser programmet tills inmatningen avslutas. I terminalen avslutar du med Ctrl + Z följt av Enter i Windows, eller Ctrl + D på Mac.

Uppgift: fråga efter två tal

Skriv en fil som frågar efter två tal och räknar ut summan:

Skriv in tal 1: 5
Skriv in tal 2: 7
Summan är 12

Klar när

  • Programmet frågar efter två tal och skriver ut rätt summa.
  • Du har kört det i din egen terminal och sett hur det väntar på varje svar.