3

C++ Without Fear: A Beginner's Guide That Makes You Feel Smart bookの章 (8) で、テキスト ファイルを表示しようとするコードの一部は次のとおりです。

while(1)
{
    for(int i=1; i <= 24 && !file_in.eof(); i++)
    {
        file_in.getline(input_line,80);
        std::cout<<input_line<<std::endl;
    }

    if(file_in.eof())
    {
        break;
    }

    std::cout<<"More? (Press 'Q' and ENTER to quit.)";
    std::cin.getline(input_line,80);
    c=input_line[0]; // <<<<<<
    if(c=='Q'||c=='q')
    {
        break;
    }
}

ここで得られない部分は次のとおりです。

c=input_line[0];

「Q」または「q」と読むように置かれていると思います。しかし、なぜこのフォーム (配列) を使用するのでしょうか。そして、「Q」または「q」を直接読み取る方法はありませんか?

試しstd::cin>>c;てみましたが、間違っているようでした。

何か案は?

ありがとう。

4

4 に答える 4

3

input_line文字列 ( chars からの配列) であるため、input_line[0]最初の文字を取得します。これは、ユーザーが「Q」だけでなく「quit」または「Quit」と書いた場合です。

std::cin >> c;char1つだけ入力して押すと正しいでしょうEnter

于 2011-01-20T12:18:15.157 に答える
3

試しstd::cin>>c;てみましたが、間違っているようでした。

cが の場合、それは正しいcharです。

あなたが正しい; 1 つの文字を抽出するためだけに行全体を読み取るのは奇妙です。このリストから本をお勧めします。

于 2011-01-20T12:18:46.777 に答える
1

入力行が書き込まれた「配列」から最初の文字を取得しています。

于 2011-01-20T12:19:44.307 に答える
-4

非標準のソリューションですが、Windows プラットフォームで動作します。

conio.h の例で定義されている getch() 関数を使用できます。

#include <conio.h>
...
char c = getch();

さよなら

于 2011-01-20T12:33:35.713 に答える