[RUBY] Czytanie danych ze standardowego wejscia i EOF
Witam,
W jezyku C++ przerwanie petli, gdy wczyta EOF to bulka z maslem na przyklad:
if ((cin >> a).eof()) break;
Chcialbym zrobic to w rownie prosty sposob w jezyku Ruby w petli, kombinuje w ten sposob:
Dla przykladowych danych zachowuje sie to w nastepujacy sposob:
[asmo@t42 c]$ ruby x.rb
d
Wpisano: d
Po wykonaniu..
Wpisano:
d
Po wykonaniu..
Wpisano: d
d
Po wykonaniu..
Wpisano: d
[asmo@t42 c]$
Prawie tak jakbym sobie tego zyczyl tylko za pierwszym przebiegiem petli wymaga ENTER w miejscu wykonania komendy break if STDIN.eof?. Moznaby to sprobowac obchodzic z pomoca petli for gdy i = 1, ale na pewno jest jakis elegancki sposob jesli w takich starych jezykach jak C lub C++ mozna to zrobic tak latwo.
Dziekuje za wszelkie sugestie i pozdrawiam,
EDIT: rozwiazanie
STDIN.each do |str|
str.chomp!
end
W jezyku C++ przerwanie petli, gdy wczyta EOF to bulka z maslem na przyklad:
if ((cin >> a).eof()) break;
Chcialbym zrobic to w rownie prosty sposob w jezyku Ruby w petli, kombinuje w ten sposob:
- Kod: Zaznacz wszystko
loop do
a = gets.chomp
puts "Wpisano: #{a}"
break if STDIN.eof?
puts "Po wykonaniu.."
end
Dla przykladowych danych zachowuje sie to w nastepujacy sposob:
[asmo@t42 c]$ ruby x.rb
d
Wpisano: d
Po wykonaniu..
Wpisano:
d
Po wykonaniu..
Wpisano: d
d
Po wykonaniu..
Wpisano: d
[asmo@t42 c]$
Prawie tak jakbym sobie tego zyczyl tylko za pierwszym przebiegiem petli wymaga ENTER w miejscu wykonania komendy break if STDIN.eof?. Moznaby to sprobowac obchodzic z pomoca petli for gdy i = 1, ale na pewno jest jakis elegancki sposob jesli w takich starych jezykach jak C lub C++ mozna to zrobic tak latwo.
Dziekuje za wszelkie sugestie i pozdrawiam,
EDIT: rozwiazanie
STDIN.each do |str|
str.chomp!
end
- asmo
- Posty: 1
- Rejestracja: 2009-07-05, 11:42
- Miejscowość: Rumia
1 post
• Strona 1 z 1
Kto jest na forum
Użytkownicy przeglądający to forum: Brak zarejestrowanych użytkowników oraz 1 gość