1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Macのターミナルで実行するとEOFが認識されない?

Posted at

はじめに

競プロの問題を解いていてあまりググっても解決策が出てこない問題にぶつかったので記事にしておきますー!

EOFとは

AOJでこちらの問題 ALDS1_3_A を解いていて、 EOF というものを使うことが必要になった。EOFはEnd of Fileの略。意味は「ファイルの終わり」といったところでしょうか?
この問題では
while(scanf("%s", s) != EOF)
という使い方をしました。

ターミナルで実行するとEOFが認識されない

いつも通りコンパイルしてターミナルで実行すると、返り値が返ってきません。でも、AOJに提出するとAcceptedとなるのでコードは間違っていません。
どうやら先ほどのコードのwhileループが終わっていないようです。
ということは、入力が終わっても!=EOFになっている、つまり入力の終わりが認識されていないということですよね?

なんででしょう。

解決方法

実行時にEnterキーではなく Control+D を押す!
これで成功しました。

終わりに

ただのメモなのでどうしてこれで上手くいくのか、など詳しいことは分かりません。ガチプロの方教えていただければ幸いです、、。
もし同じ壁に詰まった方がいればこれをみて解決してもらえれば!と思います*(^o^)/*

参考ページ

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?