2014-11-08 43 views
1

我想问一下,如果可以使用stdin以EOF结束多次。我有类似的东西:多次使用stdin

int ColumnCounter = 0; 
int Space = 1; 
long IterationCounter = 0; 
do 
{ 
    while ((Char = getchar()) != EOF) 
     { 
      if ((Char != ' ') && (Space == 1)) 
       { 
        ColumnCounter++; 
        Space = 0; 
       } 
      else if (Char == ' ') 
       { 
        Space = 1; 
       } 
      else if (Char == '\n' || Char == '\0') 
       { 
        putchar('\n'); 
        Space = 0; 
        ColumnCounter = 1; 
        continue; 
       } 
      if (ColumnCounter == NumberOfCol) 
       { 
        putchar(Char); 
       } 
     } 
    ColumnCounter = 0; 
    Space = 1; 
    IterationCounter = NumberOfCol++; 
    IterationCounter++;} 
while (IterationCounter < EndingNumberOfCol + 1); 

继续在下面的注释。

+0

什么是“......”。 'while(repeat = 5)'should'while while(repeat!= 5)''也许。一个'for'循环可能会更好 – 2014-11-08 09:48:07

+0

谢谢,我解决了它。我也尝试过for循环,但它也没有工作。 – Tom 2014-11-08 09:50:05

+0

从问题继续。 我有 Tom 2014-11-08 10:15:37

回答

0

是的。就像你一直在做差不多正确!使用下面的代码:

int repeat=0; // Don't forget to initialize repeat 
int Znak; 
do 
{ 
    while ((Znak = getchar()) != EOF) 
    {   ...   } 
    repeat++; //repeat not reapeat here 
} 
while (repeat<5); //loop until repeat is less than 5 

编辑:我看到你编辑你的code.So,简单地实现上述逻辑到你的程序。