首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C#以StandardInput的方式读取通过命令行提供的文本文件

C#以StandardInput的方式读取通过命令行提供的文本文件
EN

Stack Overflow用户
提问于 2016-07-15 23:49:28
回答 1查看 2.2K关注 0票数 0

我正在努力找出老的FizzBuzz挑战。我理解了FizzBuzz部分背后的逻辑(打印Fizz表示可被3整除的数字、用于数字可被5整除的Buzz以及可被两者整除的数字的FizzBuzz )。

指令:

玩家一般坐在一个圆圈里。第一个玩家说数字“1”,每个玩家依次说下一个号码。但是,任何可被X整除的数字(例如,3)都由单词fizz代替,任何可被Y整除的数(例如,5)都被单词buzz所取代。可被两者整除的数字就成了嗡嗡的嗡嗡声。犹豫不决或犯错误的球员将被淘汰出局。编写一个程序,打印出最后一系列的数字,其中,那些可被X,Y和两者都替换为“F”代表fizz,“B”代表巴斯和“FB”代表蜂鸣。

输入示例:您的程序应该接受文件作为其第一个参数。该文件包含多个分隔行;每一行包含3个以空格分隔的数字。第一个数字是第一个除数器(X),第二个数字是第二个除数器(Y),第三个数字是你应该计算(N)的距离。您可以假设输入文件的格式是正确的,并且数字是有效的正整数。

例如:3 5 10 2 7 15

输出示例:打印系列1到N,用“F”替换可被X整除的数字,用“B”替换可被Y整除的数字,用“FB”替换可被两者整除的数字。由于输入文件包含多组值,您的输出应该打印出每组一行。确保在打印的每一行中都没有尾随空位。

1 2法4 B法7 8法1法3法5法B 9法11法13 FB 15

制约因素:

·测试用例的数量≤20

* "X“在1、20范围内

·"Y“在1、20范围内

·"N“在21,100范围内

我不是在找人为我做这个,只是帮助我更好地理解我是如何阅读文本文件。如果这是个“愚蠢”的问题,我很抱歉。我研究过微软的开发网络页面以求澄清,但这让我更加困惑.谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-15 23:56:29

标准输出(stdout)只是常规控制台输出;

要发送一些东西给它,只需做Console.WriteLine

发送到stderr Console.Error.WriteLine,但这不是质询所要求的。

CodeEval上的挑战不要求您从stdin输入任何内容,只需从方法的第一个参数中获取文件名:

代码语言:javascript
复制
public static void Main(string[] args)
{
    var fileContent = File.ReadAllText(args[0]);
}

如果您必须有效地从stdin中读取数据,则只需使用Console.ReadLine即可。

代码语言:javascript
复制
string line;

while ((line = Console.ReadLine()) != null)
{
    // Do whatever you need to do with the line variable read from the stdin.
}

或与您提供的代码集成:

代码语言:javascript
复制
using (var reader = new StreamReader(Console.OpenStandardInput()))
{
    Console.WriteLine(FizzBuzz.ParseInput(reader));
}

另外,如果只需要解析文本,还可以选择另一个选项:Console.In

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38406397

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档