C++アルゴリズムの問題のいくつかの入力の技巧
966 ワード
C++を実行する端末で入力を終了する方法
私たちがプログラムを実行するときはEOFでプログラムを終了することがありますが、端末ではスペースを入力し、TABもリターン記号も入力を終了できないので、この場合は他の方法を使用します. Windowsでは、入力が完了したらEnterキーを押し、Ctrl+Zキーを押し、最後にEnterキーを押すと入力を終了します. Linuxでは、入力が完了したらCtrl+Dキーを押して入力を終了します.
スペースの保持とリターンの入力
1.getchar()は,問題が読みながら処理できる場合に最適な方法である.
2.gets()は、上記の条件を満たさなければ、このスキームしか使用できません.
改行の無視を入力
私たちがプログラムを実行するときはEOFでプログラムを終了することがありますが、端末ではスペースを入力し、TABもリターン記号も入力を終了できないので、この場合は他の方法を使用します.
スペースの保持とリターンの入力
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;
}