アプリ版:「スタンプのみでお礼する」機能のリリースについて

Windowsでの標準入力の終了の仕方を教えて下さい。

A 回答 (4件)

Ctrl+Zです。

    • good
    • 0
この回答へのお礼

出来ました。
どうもありがとうございました。

お礼日時:2002/06/30 00:29

うーん、入出力の単純なものは、クラスをいちいち、作らなくてもいいのでは?やりたいってなら別ですが。

。。

わたしの、#1の回答そっくりそのままとやりたいことが、一緒のような気がするんで、もし良かったら、あのコードで、問題は解決すると思うんですが。。。

では、頑張って下さい。
    • good
    • 0
この回答へのお礼

readlineに変更してみたのですが前と同じように続いてしまいました(まだ他にも改善する点があったんでしょうか?)
でも少し勉強になったのでよかったと思います。
どうもありがとうございました。

お礼日時:2002/06/30 00:28

分かりました。


まず、Tamagawaさんのプログラムのやっていることを1番初めから見ると、
class Copy {
public static void main(String[] args) {
String s;

while ((s = Cin.getLine()) != null) { /////ここの時点、おかしいです。
System.out.println(s);
}
}
}

class Copyのメインメソッドで、while (( s = Cin.getLine() )! = null) System.out.println

についてですが、これでは、ずーっと、無限にgetLineメソッドが呼び出されてしまいます。getLine()はreadLine()を使っています。
readLineは、まず入力を促します。それが、nullでなければ、ループは、終わらないと言うことですよね。
nullだったら、whileをやめようとするんですよね。
と言うことは、プログラムはまず、readLineで、入力を促し、それから条件判断を下します。
    • good
    • 0

???言っている事がよく分からないんですが、以下の説明でよろしければ。

。。

import java.io*; //入出力クラスのインポート

class Sample105
{
public static void main(String args[]){

System.out.println("好きな言葉は?");

try
{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

String str = br.readLine();
System.out.println("好きな言葉は" + str + "ですね。");
}
catch(IOException e)
{
System.out.println("入出力エラー");
}
}
}

この場合、DOS画面に好きな言葉を入力し、エンターキーを押せば、その時点で、標準入力は終了しますが?言ってる意味違いますかね?

参考URL:http://www.h5.dion.ne.jp/~tuyano/JavaTutor/index …

この回答への補足

説明不足ですみません。
わたしのやっている事を説明すると

まずプログラム入力中に標準入力から入力を行うためのクラス(Cin)を定義します

import java.io.*;

class Cin {
private static BufferedReader in
= new BufferedReader(new InputStreamReader(System.in));

public static String getLine() {
String s = "";
try {
s = in.readLine();
} catch (IOException e) {
System.out.println("IO error!");
System.exit(1);
}

return s;
}
}
次にそのクラスを使って,標準入力を標準出力にコピーするアプリケーション(Copy)を作成しました。

class Copy {
public static void main(String[] args) {
String s;

while ((s = Cin.getLine()) != null) {
System.out.println(s);
}
}
}
これをコンパイルし実行してみたのですが
(たとえば)
C:\java>java Copy《return》
Hello《return》 //Helloと入力しreturnキーを押す
Hello
World!《return》    //Worldと入力しreturnキーを押す
World!
というふうにちゃんとコピーは出来ているのですが、さらに入力を聞いてくるのです。
どうしたら終了できるのでしょうか?

補足日時:2002/06/29 17:24
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!