Obecny czas: 2010-09-06, 18:16
Zaloguj się

[RUBY] Czytanie danych ze standardowego wejscia i EOF

Masz problem z programem? Coś nie działa, a może chcesz sie pochwalić :) Jeżeli dotyczy to tego języka to śmiało to tu napisz:) Programowanie Python.

Moderatorzy: J.Admin, ModTeam

Postprzez asmo » 2009-07-05, 23:39

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:
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

Wróć do Języki skryptowe

Kto jest na forum

Użytkownicy przeglądający to forum: Brak zarejestrowanych użytkowników oraz 1 gość

cron

Kto jest na forum

Na forum jest 1 użytkownik :: 0 zarejestrowanych, 0 ukrytych i 1 gości (oparte na użytkownikach aktywnych przez ostatnie 5 minut)
Najwięcej użytkowników (140) było obecnych 2007-12-12, 06:19

Użytkownicy przeglądający to forum: Brak zarejestrowanych użytkowników oraz 1 gość

Login Form