通过 asp.net 从控制台读取输出

Posted

技术标签:

【中文标题】通过 asp.net 从控制台读取输出【英文标题】:Reading output from console through asp.net 【发布时间】:2014-08-31 10:04:24 【问题描述】:

我正在使用此代码通过 asp.net 将两个数字作为输入传递给 C 程序文件的 .exe,然后尝试从控制台读取输出。我在从控制台读取任何输出时遇到问题。 我的asp.net代码是。

string returnvalue;

Process p = new Process();

p.StartInfo.CreateNoWindow = true;
p.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
p.StartInfo.FileName = ("C:\\Users\\...\\noname01.exe");
p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.RedirectStandardInput = true;
p.Start();
Thread.Sleep(500);
SendKeys.SendWait("1");
Thread.Sleep(500);
SendKeys.SendWait("~");
Thread.Sleep(500);
SendKeys.SendWait("2");
Thread.Sleep(500);
SendKeys.SendWait("~");
Thread.Sleep(500);

StreamReader sr = p.StandardOutput;

returnvalue = sr.ReadToEnd();

System.IO.StreamWriter file = new System.IO.StreamWriter("C:\\...\\StudentOutput.txt");
file.WriteLine(returnvalue);

传递输入的我的 C 代码是。

#include<stdio.h>

    int main()
    
    int a, b, c;

    printf("Enter two numbers to add\n");
    scanf("%d%d",&a,&b);

    c = a + b;

    printf("Sum of entered numbers = %d\n",c);

    return 0;
    

我无法从控制台读取任何输出。

【问题讨论】:

查看***.com/questions/4291912/… 我已经试过了,但它不起作用 【参考方案1】:

使用StandardInput,而不是SendKeys

StreamWriter sw = p.StandardInput;

sw.WriteLine("1");
sw.WriteLine("2");
sw.Close();

...

p.WaitForExit();
p.Close();
System.IO.StreamWriter file = new System.IO.StreamWriter(".\\out.txt");//Simplified
file.WriteLine(returnvalue);
file.Close();

【讨论】:

以上是关于通过 asp.net 从控制台读取输出的主要内容,如果未能解决你的问题,请参考以下文章

Asp.net编程,输出到HTML而不是写到控制台

asp.net中如何输出数据?

将控制台应用程序的标准输出流式传输到 ASP.NET MVC 视图

在 asp net core 控制台应用程序中读取 appsettings

ASP.NET Core 读取配置 IOptions 控制器未触发

如何在 asp.net 核心 webapi 控制器中读取请求正文?