こんばんは。
前回の記事でeclipseを導入したことをお伝えしました。
最初のうちは慣れないながらも参考書のサンプルプログラムを記述、
実行し、楽しく使えていたんですが、ふと以前購入した、
「はじめてのAIプログラミング C言語で作る人工知能と人工無能」
で動かなかったコードを試してみようと思い、打ち込んでみました。
案の定動作しませんでした。
試しにVisualStudio2017では動いたコードを打ち込んでみました。
なんと、そのコードも動かない・・・
eclipseで打ったコードをVisualStudio2017で動かすと正常に動作しました。
明らかにおかしい。
そこで「eclipse実行されない」等々検索し、文字コードを変えたり、設定を
変更しても治らない・・・
意味わかんね~と諦めかけた時についに原因を発見!
わかりますか?
だいぶ前に投稿した「人工無能作りをすることにしました」の記事でのコードとの
違い。
そう! fflush(stdout); という記述がprintf関数のあとに追加されています!
なにやらこれはeclipseの癖みたいで、キーボードから入力をした後にprintf関数を
使うとうまく表示されないため、fflush(stdout);という記述が必要みたいです。
上の画像のコードを実行するとうまく動作しました。
これは正直非常にめんどくさいですよね・・・
別にVisualStudio2017が嫌になったわけでもないし、この制約を受けながらeclipseを
使う必要ってないように思えてきました。
ちなみにfflush(stdout);の件が解決したのちに、動かなかったサンプルコードを実行
(必要だと思われる場所にfflush(stdout);を付け足して)してみたところ、
見事に動きませんでした!!
ははは・・・ひとまずはeclipseは封印だな!