Mówię o Ruby, ale nie o ROR. Nie ma tam ani słowa o wejściu z konsoli.
Sergey
Odpowiedzi:
228
O czym mówisz gets?
puts "Enter A"
a = gets.chomp
puts "Enter B"
b = gets.chomp
c = a.to_i + b.to_i
puts c
Coś w tym stylu?
Aktualizacja
Kernel.getspróbuje odczytać parametry znalezione w programie ARGVi pyta tylko o konsolę, jeśli nie zostaną ARGVznalezione. Aby wymusić odczyt z konsoli, nawet jeśli ARGVnie jest pusty, użyjSTDIN.gets
Mam konflikt z tym rozwiązaniem: Kernel.getsspróbuj odczytać pliki znalezione w programie ARGVi pyta tylko o konsolę, jeśli nie zostaną ARGVznalezione. Aby wymusić odczyt z konsoli, nawet jeśli ARGVnie jest pusty, użyj STDIN.gets.
fguillen
3
a.to_ii b.to_imogłoby być lepiej
Dorian
jest getsblokowanie? Jeśli nie, czy istnieje substytut, który blokuje?
noMAD
1
@fguillen to świetna odpowiedź i nie powinno się jej ukrywać w komentarzach. Czy mógłbyś podać odpowiedź, proszę? Dzięki!
Dan Rosenstark
2
@Yar dzięki za sugestię, dodałem aktualizację do samej odpowiedzi.
fguillen
28
możesz również przekazać parametry przez wiersz poleceń. Argumenty wiersza poleceń są przechowywane w tablicy ARGV. więc ARGV [0] jest pierwszą liczbą, a ARGV [1] drugą liczbą
Istnieje wiele sposobów uzyskiwania informacji od użytkowników. Osobiście lubię korzystać z metody gets. Kiedy używasz gets, pobiera ciąg
, który wpisałeś, a także klawisz ENTER , który został naciśnięty, aby zakończyć wprowadzanie.
name = gets
"mukesh\n"
Możesz to zobaczyć w irb ; wpisz to, a zobaczysz \ n, który jest znakiem „nowej linii”, który tworzy klawisz ENTER: Wpisz name = getszobaczysz coś takiego, jak "mukesh\n"
Możesz pozbyć się nieznośnego znaku nowej linii używając metody chomp .
Metoda chomp zwraca łańcuch, ale bez kończącego znaku nowej linii. Piękny wybawiciel życia metodą chomp.
name = gets.chomp
"mukesh"
Możesz także użyć terminala do odczytu danych wejściowych. ARGV to stała zdefiniowana w klasie Object . Jest instancją klasy Array i ma dostęp do wszystkich metod tablicowych. Ponieważ jest to tablica, nawet jeśli jest stała, jej elementy można bez problemu modyfikować i usuwać. Domyślnie Ruby przechwytuje wszystkie argumenty wiersza poleceń przekazane do programu Ruby (podzielone na spacje), gdy wywoływany jest plik binarny wiersza poleceń i przechowuje je jako łańcuchy w tablicy ARGV .
Po napisaniu w programie Ruby, ARGV przyjmie polecenie wiersza poleceń, które wygląda następująco:
test.rb hi my name is mukesh
i utwórz tablicę, która wygląda następująco:
["hi","my","name","is","mukesh"]
Ale jeśli chcę przekazać ograniczone dane wejściowe, możemy użyć czegoś takiego.
Odpowiedzi:
O czym mówisz
gets
?Coś w tym stylu?
Aktualizacja
Kernel.gets
próbuje odczytać parametry znalezione w programieARGV
i pyta tylko o konsolę, jeśli nie zostanąARGV
znalezione. Aby wymusić odczyt z konsoli, nawet jeśliARGV
nie jest pusty, użyjSTDIN.gets
źródło
Kernel.gets
spróbuj odczytać pliki znalezione w programieARGV
i pyta tylko o konsolę, jeśli nie zostanąARGV
znalezione. Aby wymusić odczyt z konsoli, nawet jeśliARGV
nie jest pusty, użyjSTDIN.gets
.a.to_i
ib.to_i
mogłoby być lepiejgets
blokowanie? Jeśli nie, czy istnieje substytut, który blokuje?możesz również przekazać parametry przez wiersz poleceń. Argumenty wiersza poleceń są przechowywane w tablicy ARGV. więc ARGV [0] jest pierwszą liczbą, a ARGV [1] drugą liczbą
i tak to nazywasz
źródło
Istnieje wiele sposobów uzyskiwania informacji od użytkowników. Osobiście lubię korzystać z metody gets. Kiedy używasz gets, pobiera ciąg , który wpisałeś, a także klawisz ENTER , który został naciśnięty, aby zakończyć wprowadzanie.
Metoda chomp zwraca łańcuch, ale bez kończącego znaku nowej linii. Piękny wybawiciel życia metodą chomp.
Możesz także użyć terminala do odczytu danych wejściowych. ARGV to stała zdefiniowana w klasie Object . Jest instancją klasy Array i ma dostęp do wszystkich metod tablicowych. Ponieważ jest to tablica, nawet jeśli jest stała, jej elementy można bez problemu modyfikować i usuwać. Domyślnie Ruby przechwytuje wszystkie argumenty wiersza poleceń przekazane do programu Ruby (podzielone na spacje), gdy wywoływany jest plik binarny wiersza poleceń i przechowuje je jako łańcuchy w tablicy ARGV .
Po napisaniu w programie Ruby, ARGV przyjmie polecenie wiersza poleceń, które wygląda następująco:
i utwórz tablicę, która wygląda następująco:
Ale jeśli chcę przekazać ograniczone dane wejściowe, możemy użyć czegoś takiego.
i użyj tych danych wejściowych w swoim programie:
źródło
jeśli chcesz zachować argumenty z terminala, wypróbuj następujący kod:
źródło
Jeśli chcesz stworzyć konsolę interaktywną:
Użycie (zakładając, że umieścisz powyższy fragment w
summator
pliku w bieżącym katalogu):Użyj,
Ctrl + D
aby wyjśćźródło