Visual Studio 将文本文件内容传递给Console.ReadLine(),而不是键入

yuvru6vn  于 2023-01-17  发布在  其他
关注(0)|答案(2)|浏览(139)
Public static void main(args){
     String input = Console.ReadLine();
     Console.WriteLine(input);
}

代替使用键盘键入"input"变量的值,是否可以使用文件加载输入值?
我不想使用"args"来传递值。
例如:对于在线C#编辑器,我们会在中键入输入值,然后它会自动发送到Console.ReadLine()方法。 and this would be automatically sent to Console.ReadLine() methods.
EDIT:这不是我的产品代码,我也不打算在工作中使用。这只是为了理解在线C#编辑器如何运行包含STDIN数据/值的程序

x759pob2

x759pob21#

感谢马克·格拉维尔和奥利维尔·罗吉尔。
答案是使用管道。
我的控制台应用程序main.cs

Public static void main(args){
     String input = Console.ReadLine();
     Console.WriteLine(input);
}

输入. txt文件

Hello world

命令行

myconsoleapp.exe < input.txt

输出

Hello world

参考:ss64.com/nt/syntax-redirection.html

How-to: Redirection
   command > filename        Redirect command output to a file

   command >> filename       APPEND into a file

   command < filename        Type a text file and pass the text to command

   commandA  |  commandB     Pipe the output from commandA into commandB

   commandA &  commandB      Run commandA and then run commandB
   commandA && commandB      Run commandA, if it succeeds then run commandB
   commandA || commandB      Run commandA, if it fails then run commandB

   commandA && commandB || commandC
                             If commandA succeeds run commandB, if commandA fails run commandC
                             ( Note that if commandB fails, that will also trigger running commandC )
0lvr5msh

0lvr5msh2#

您可以使用Console.SetIn()方法将控制台的流转换为文本文件,这样您将直接使用Console.ReadLine()从filename.txt中读取。

文件名.txt〉〉你好,世界

TextReader inp = File.OpenText(path: @"FullPath\filename.txt");
Console.SetIn(inp);
string s = Console.ReadLine();
Console.WriteLine(s);

**输出:**Hello World

相关问题