2014-11-08 41 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,簡單地實現上述邏輯到你的程序。