こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

配列をputsで表示させる順番

お尋ねします。
2016/01/04, 11, 101
2016/01/05, 12, 102
2016/01/06, 13, 103
と表示させようと思い下記を作ってみましたが、どうしても
2016/01/04, 2016/01/05, 2016/01/04, 11, 12, 13, 101, 102, 103
となってしまいます。(出力の順番と改行の問題)どのようにすればよいでしょうか?
[0..2].each do |i|
puts [stock.dates[i], stock.num1[i], stock.num2[i]].join(", ")
end
よろしくお願いします。

投稿日時 - 2016-08-02 09:39:37

QNo.9209851

困ってます

質問者が選んだベストアンサー

すいません。思い込みでちゃんとコードを見てませんでした。お恥ずかしい。
(0..2).each do |i|

end
ですね。

投稿日時 - 2016-08-03 23:02:16

お礼

あー、そこでしたか・・・私の方こそお恥ずかしい。
[]と()と{}の使い分け、初心者には大変です。
お蔭さまで最初の並びと改行の問題は解決しました。
ありがとうございました。

投稿日時 - 2016-08-04 06:19:19

ANo.3

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

ちょっとあり得ない現象ですね。
# encoding: Windows-31J
require "./text_to_stock"
[0..2].each do |i|
puts i
end
で3行になりますか?1行ですか?

投稿日時 - 2016-08-03 21:33:13

補足

ありがとうございます。
0
1
2
きっとこれが期待する出力ですよね?なのに、こうなりました。
0..2
何か基本的にヘンですね、初心者の私でも思います。putsをpにしても同じ結果です。
puts "#{i} uuu"でも、こうなるだけです。
0..2 uuu
やっぱあり得ませんよね!!?なんだろ・・・

投稿日時 - 2016-08-03 22:09:59

ANo.1

書かれている部部だけ見て、書かれていない部分を想像してみると、おかしく無さそうです。
ただ、putsを3回実行して出力が1行と言うことはあり得ないので、あなたに何かの勘違いがあるんだろうと思います。コードを全部省略せずに載せてください。

投稿日時 - 2016-08-02 23:37:58

補足

# encoding: Windows-31J
require "./text_to_stock"
tts = TextToStock.new(stock_list: "list.txt", section: "")
stock = tts.generate_stock(8002)
[0..2].each do |i|
 puts [stock.dates[i], stock.open_prices[i], stock.close_prices[i]].join(", ")
end

前半を含めてrb全体を記載しますが、putsの部分は変数名を変更しただけで省略はしてません。
画面(console)だけの問題かと思い下記でテキストファイルに落としてみましたが結果は同じ改行無しの横1行でした。
File.open("./result.txt", "w") do |file|
 [0..2].each do |i|
  file.puts [stock.dates[i], stock.open_prices[i], stock.close_prices[i]].join(", ")
 end
end
何かお分かりになることありますでしょうか?

投稿日時 - 2016-08-03 06:37:13

あなたにオススメの質問