我有一个控制台应用程序,可以打印包含行(数千)文本的文本文件中的行。
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行......然后它会继续,直到文件用完行,然后程序停止。
答案 0 :(得分:3)
一种方法可能是简单地跟踪您向控制台写入的行数。当您达到100行时,停止输出,等待输入,重置计数器或使用%100,然后恢复循环。
答案 1 :(得分:2)
使用模运算符:使用计数器。在开始时将其初始化为0。阅读每一行后增加它。在循环内部有一个检查:
if (counter % 100 == 0)
waitForInput();
没有模运算符:用户点击回车后你也可以将counter设置为0 - 在这种情况下你不需要使用%而且只能检查
if (counter == 100) {
waitForInput();
counter = 0;
}
PS。像这样:
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();
}
}
答案 2 :(得分:2)
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++;
}
}