2011-06-19 10 views
0

Helow :) これはeofの前に入力された数字を反転する私の反復的なプログラムです。 しかし、eof文字^Zが見つかるまで停止しません。新しい行にEOF文字を書く..cinは文字を無視しますか? !!!無視されたeof文字の-0の値を返す

例の画像:?http://www.imageupload.org/?d=F9D743081

#include <iostream> 
using namespace std; 
void recursive() 
{ 
    long double n; 
    if((cin>>n)) 
     recursive(); 

    cout<<n<<endl; 
} 
int main() 
{ 
    recursive(); 
    return 0; 
} 

間違っている何 おかげで....

+0

あなたは、Windowsのコマンドラインで動作するだけの方法だことはよく – Nawaz

+1

としてhttp://www.ideone.comでデモコードを投稿することができます。 '^ Z'は魔法のキャラクターではなく、' cmd'に現在のフォアグラウンドプロセスの入力を閉じるように指示するためのものです。 'cmd'はそれが行の最初の文字であるときにのみ解釈し、行が来る前に行全体を入力するのを待ちます。 –

答えて

3

あなたはWRIする必要があります

これで、正常に読み取られた値だけが出力されるようになりました。あなたのプログラムは失敗した読み込みも印刷します。最後の読み取りは成功しませんが、coutはとにかくnを印刷しようとします。

ところで、再帰を停止するには、^Zを押す必要はありません。いくつかのアルファベットやその他の数字以外の文字を押して、再帰を止めることができます。

デモ:http://www.ideone.com/D4XT1

+0

はい、それは停止しません! .... Onlu出力が修正されました:) –

+0

@David:何が止まらないのですか? – Nawaz

+0

私が次のように入力した場合:13 21 22^Z^Z^Z^Z再帰が終わるまで改行が止まりません。改行で^ Zを書いています....添付の画像を見る私の最初の投稿... –

関連する問題