Menu
Coddy logo textTech

Odczyt danych wejściowych za pomocą readline()

Część sekcji Podstawy ścieżki R w Coddy. Lekcja 29 z 78.

Do tej pory nauczysz się wyświetlać dane wyjściowe. Teraz czas sprawić, by Twoje programy były interaktywne, odczytując dane wejściowe od użytkownika. Funkcja readline() pozwala przechwycić to, co wpisuje użytkownik.

name <- readline()
cat("Hello,", name, "\n")

Gdy ten kod zostanie uruchomiony, R czeka, aż użytkownik coś wpisze i naciśnie Enter. Wszystko, co wpisze, zostanie zapisane w zmiennej name. Jeśli użytkownik wpisze „Alice”, wynikiem będzie: Hello, Alice

Ważna rzecz, którą warto wiedzieć: readline() zawsze zwraca ciąg znaków, nawet jeśli użytkownik wpisze liczbę. Jeśli ktoś wpisze „25”, zostanie ona zapisana jako tekst "25", a nie jako liczba 25. W następnej lekcji dowiesz się, jak konwertować między typami.

Możesz wczytać wiele danych wejściowych, używając readline() wielokrotnie:

first <- readline()
second <- readline()
cat("First:", first, "\n")
cat("Second:", second, "\n")

Każde wywołanie readline() czeka na osobny wiersz danych wejściowych od użytkownika.

Podczas łączenia tekstu ze zmiennymi za pomocą cat() między elementami oddzielonymi przecinkami pojawia się spacja. Czasami trzeba połączyć tekst bez spacji, na przykład, aby bezpośrednio dołączyć znak interpunkcyjny do słowa. Właśnie wtedy przydaje się paste0(). Łączy ciągi znaków, nie wstawiając między nimi żadnego separatora:

city <- readline()
cat("Welcome to", paste0(city, "!"), "\n")

Tutaj paste0(city, "!") łączy wartość city i "!" bez spacji, więc jeśli użytkownik wpisze „Paris”, wynikiem będzie: Welcome to Paris!

challenge icon

Wyzwanie

Łatwy

Wczytaj dwa wiersze danych wejściowych i wyświetl spersonalizowane powitanie.

Otrzymasz dwa dane wejściowe:

  1. Imię
  2. Nazwę miasta

Wczytaj oba dane wejściowe za pomocą readline() i wyświetl komunikat w następującym formacie:

Welcome, [name] from [city]!

Użyj cat(), aby wygenerować wynik. Pamiętaj, aby na końcu umieścić wykrzyknik i znak nowej linii \n.

Na przykład, jeśli danymi wejściowymi są Emma i Paris, wynikiem powinno być:

Welcome, Emma from Paris!

Spróbuj swoich sił

# Odczytaj dane wejściowe
con <- file("stdin", "r")
name <- suppressWarnings(readLines(con, n = 1))
city <- suppressWarnings(readLines(con, n = 1))

# TODO: Napisz poniżej kod wyświetlający powitanie
# Użyj cat(), aby wyświetlić: Welcome, [name] from [city]!
# Nie zapomnij o znaku nowej linii \n na końcu
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Podstawy

Poćwicz samodzielnie: Kompilator R online