2
    int x,y,m;
for(;;){
    m=scanf("%d %d",&x,&y);
    if (m!=2 || m==EOF){
        break;
    }
    else{
        printf("/%d/%d/\n",x,y);
    }
}
if (feof ( stdin )){
  printf("End of input\n");
}else if(m!=2){
  printf("There was an error\n");
}

Linux では ctrl+D は入力の終わりを示し、Windows では ctrl+z でうまくいくはずですが、うまくいきません。何か案は?

4

2 に答える 2

5

Ctrl+zの後にEnterキーを押してみてください

それでもうまくいかない場合は、C++バージョンを試してください。

#include <iostream>

int x, y;
while ( std::cin >> x >> y )
   std::cout << '/' << x << '/' << y << "/\n";
if ( std::cin.eof() )
   std::cout << "End of input\n";
else
   std::cout << "There was an error\n";

そしてそれが良くなるかどうか見てみませんか?

于 2010-10-26T12:18:24.160 に答える
-2
#include<stdio.h>
#include<conio.h>
void main (void)
{
int x,y,m;
for(x=0;x>=0;x++){
    m=scanf("%d %d",&x,&y);
    if (m!=2 || m==EOF){
    break;
    }
    else printf("/%d/%d/\n",x,y);
}
if (feof ( stdin )){
  printf("End of input\n");
}
else if(m!=2){
  printf("There was an error\n");
}
getch();
}
于 2012-12-23T18:34:39.170 に答える