はじめに
競プロの問題を解いていてあまりググっても解決策が出てこない問題にぶつかったので記事にしておきますー!
EOFとは
AOJでこちらの問題 ALDS1_3_A を解いていて、 EOF というものを使うことが必要になった。EOFはEnd of Fileの略。意味は「ファイルの終わり」といったところでしょうか?
この問題では
while(scanf("%s", s) != EOF)
という使い方をしました。
ターミナルで実行するとEOFが認識されない
いつも通りコンパイルしてターミナルで実行すると、返り値が返ってきません。でも、AOJに提出するとAcceptedとなるのでコードは間違っていません。
どうやら先ほどのコードのwhileループが終わっていないようです。
ということは、入力が終わっても!=EOFになっている、つまり入力の終わりが認識されていないということですよね?
なんででしょう。
解決方法
実行時にEnterキーではなく Control+D を押す!
これで成功しました。
終わりに
ただのメモなのでどうしてこれで上手くいくのか、など詳しいことは分かりません。ガチプロの方教えていただければ幸いです、、。
もし同じ壁に詰まった方がいればこれをみて解決してもらえれば!と思います*(^o^)/*
参考ページ