我是一个C++用户,现在正在尝试使用c#。
在c++中,从用户获取输入很有趣(只有>>),并且支持所有类型。文件也是如此。但在c#中,它太复杂了,因为我只能接受字符串。然后我必须操纵它以供以后使用。
如果我想在同一行中接受多个由空格分隔的输入,就会变得更加复杂,因为我必须进行字符串拆分。然后转换..。
可能是为了错误处理和安全代码。但不管怎样,我对C#很失望。
你们都是这里的专家。有什么简单的方法吗?
发布于 2009-05-03 10:34:13
据我所知,你必须用很难的方式来做。(不过从好的方面来看,困难的方法比在C++中简单;)
Console.OpenStandardInput()确实为您提供了输入流,因此可以像对待文件一样对待它,但是如果需要的话,您必须自己拆分字符串。当然,C#有一个很好的Regex库可能会对此有所帮助。
T.TryParse (其中T是整型、浮点型,您想读取的任何类型)应该允许您将字符串转换为这些类型。
发布于 2009-05-03 10:22:54
最终,包装它并不需要太多-您只需要缓冲当前行并以所需的格式读取输入即可。但IMO,一点split/TryParse等不会有什么坏处。
我不能100%确定>>接受的预期格式,但我怀疑做类似的事情会很困难。不过,我不是自愿写的;-p
发布于 2009-05-03 17:47:09
正如已经回答的,C#不支持这一点。当存在TextWriter.WriteLine(“",...)时,根本不会重载流的<<或>>。没有对应可变参数列表的TextReader.ReadLine()。
我将猜测原因: dat cin所理解的以空格分隔的数据格式不再经常使用。
https://stackoverflow.com/questions/816726
复制相似问题