【问题标题】:Using stdin more than one time多次使用标准输入
【发布时间】:2015-01-05 02:25:38
【问题描述】:

我想问一下,是否可以多次使用以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);

在下面的评论中继续。

【问题讨论】:

  • ... 是什么。 while (repeat = 5) 也许应该是 while (repeat != 5)for 循环可能会更好
  • 谢谢,我修好了。我也尝试过for循环,但也没有用。
  • 从上面的问题继续。我已将
  • 请不要更改问题,因为将来某些答案没有任何意义。而是开始一个新问题并接受前一个问题的答案。
  • 好的,埃德,我很抱歉。我不想做很多相同的话题......

标签: c stdin


【解决方案1】:

是的。就像你一直在做的那样几乎正确!使用以下代码:

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

编辑:我看到你已经编辑了你的代码。所以,只需在你的程序中实现上述逻辑。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-10
    • 2017-05-16
    • 2013-09-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多