C++アルゴリズムの問題のいくつかの入力の技巧

966 ワード

C++を実行する端末で入力を終了する方法
私たちがプログラムを実行するときはEOFでプログラムを終了することがありますが、端末ではスペースを入力し、TABもリターン記号も入力を終了できないので、この場合は他の方法を使用します.
  • Windowsでは、入力が完了したらEnterキーを押し、Ctrl+Zキーを押し、最後にEnterキーを押すと入力を終了します.
  • Linuxでは、入力が完了したらCtrl+Dキーを押して入力を終了します.

  • スペースの保持とリターンの入力scanf("%s")を使用して文字列を入力できません.スペースまたはTABに遭遇すると停止するため、次の2つの方法を使用できます.
    1.getchar()は,問題が読みながら処理できる場合に最適な方法である.
    int c;
    while((c = getchar()) != EOF){
        ...
    }
    

    2.gets()は、上記の条件を満たさなければ、このスキームしか使用できません.
    char c[8];
    while(gets(c)!=NULL){
        ...
    }
    

    改行の無視を入力 に遭遇することがあります.ここでは、「行をまたいで文字を読む」関数readcharを使用することができます.
    int readchar(){
        for(;;){
            int ch = getchar();
            if(ch != '
    ' && ch != '\r') return ch; // } } int readint(int c){ int v = 0; while(c--) v = v * 2 + readchar - '0'; return v; }