如果用户输入input,继续每次打印100行

本文关键字:打印 100行 继续 用户 输入 input 如果 | 更新日期: 2023-09-27 17:54:03

我有一个控制台应用程序,它从包含行(数千行)文本的文本文件中打印行。

using (TextReader tr = new StreamReader(__inputfile))
{
    string nextline = tr.ReadLine();
    while (nextline != null)
    {
        Console.WriteLine(nextline);
        nextline = tr.ReadLine();
    }
}

我想改变这一点,使它只打印100行,要求用户在打印下一个100行之前按Enter键,等等

Console.WriteLine("Press Enter to continue...or Control-C to stop");
Console.ReadLine();

在用户按Enter(或任何键)之后,它打印接下来的100行…这样一直运行下去,直到文件的行数用完,然后程序停止

如果用户输入input,继续每次打印100行

一种方法可能是简单地跟踪您向控制台写入了多少行。当达到100行时,停止输出,等待输入,重置计数器或使用%100,并继续循环。

using modulo operator:使用计数器。一开始将其初始化为0。在阅读每行后增加它。在循环中有一个像

这样的检查符
if (counter % 100 == 0)
  waitForInput(); 

不带模运算符:在用户点击enter后,你也可以将counter设置为0 -在这种情况下,你不需要使用%,只能检查

 if (counter == 100) {
   waitForInput();
   counter = 0;
 }

p。像这样:

int counter = 0;
using (TextReader tr = new StreamReader(__inputfile))
{
    string nextline = tr.ReadLine();
    while (nextline != null)
    {
        counter++;
        if(counter == 100)
        {
            Console.WriteLine("Press Enter to continue...");
            Console.ReadLine();
            counter = 0;
        }
        Console.WriteLine(nextline);
        nextline = tr.ReadLine();
    }
}
using (TextReader tr = new StreamReader(__inputfile))
{
    var count=1;
    string nextline = tr.ReadLine();
    while (nextline != null)
    {
        if (count % 100 == 0)
        {
            Console.WriteLine("Press Enter to continue...or Control-C to stop");
            nextline=Console.ReadLine();
            Console.WriteLine(nextline);
        }
        else
        {
            Console.WriteLine(nextline);
            nextline = tr.ReadLine();
        }
        count++;
    }
}