gpt4 book ai didi

c# - 在 C# 中读取/写入命令行程序

转载 作者:太空宇宙 更新时间:2023-11-03 21:36:51 26 4
gpt4 key购买 nike

我正在尝试与 C# 中的命令行程序对话。它是一个情绪分析器。它是这样工作的:

CMD> java -jar analyser.jar

>正在启动分析器...

{这是我想从我的 C# 程序中插入东西的地方。例如:

我爱你!

{然后程序响应 - 我想读这个}

非常积极

这是一些伪代码:

Process.start("sentiment.exe");
Process.writeline("I love you");
string Response = Process.readline();

C# 提供了哪些方法来写入进程的标准输入并从其标准输出读取?

最佳答案

您要做的是为您正在启动的进程“重定向”标准输入和输出 channel 。这将允许您通过 C# 流读取和写入子进程。

为此,您首先需要设置 RedirectStandardInputRedirectStandardOutput用于启动子进程的 ProcessStartInfo 类中的字段:

Process p = new Process();
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardInput = true;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.FileName = "otherprogram.exe";
p.Start();

完成后,p.StandardInputp.StandardOutput 将成为 StreamReader,附加到子级的输入和输出过程。根据子进程的确切输入和输出,您可能需要小心避免死锁(例如,您的程序正在等待输出,而另一个程序正在等待输入)。为避免这种情况,您可以使用 BeginOutputReadLine如果需要,异步接收输出的方法。

关于c# - 在 C# 中读取/写入命令行程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21270842/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com