我正在Visual Studio中开发一个C++命令行应用程序,需要使用命令行参数进行调试.目前我只使用我需要的参数运行生成的EXE文件(像这样program.exe -file.txt),但这样我无法调试.有什么地方我可以指定调试的参数吗?
我正在编写一个小命令行实用程序,其目的是解析另一个实用程序的输出.我希望它可以通过两种方式调用:
c:\> myutility filewithoutput.txt
Run Code Online (Sandbox Code Playgroud)
要么,
c:\> otherutility -args | myutility
Run Code Online (Sandbox Code Playgroud)
所以,基本上,标准或文件参数.我对此的第一次尝试看起来像这样:
TextReader reader;
if (args.Length > 1) {
reader = new StreamReader(new FileStream(args[1], FileMode.Open));
} else {
reader = Console.In;
}
Process(reader);
Run Code Online (Sandbox Code Playgroud)
文件参数工作正常,并将实用程序的输出传递给我的实用程序工作正常,但如果您只是正常调用它(没有参数和没有管道数据),它会挂起.或者说,它阻止等待从标准读取.
我的第二稿看起来像这样:
TextReader reader;
if (args.Length > 1) {
reader = new StreamReader(new FileStream(args[1], FileMode.Open));
} else {
if(Console.KeyAvailable) {
reader = Console.In;
} else {
Console.WriteLine("Error, need data");
return;
}
}
Process(reader);
Run Code Online (Sandbox Code Playgroud)
虽然KeyAvailable修复了"无输入"问题,但如果您尝试管道数据> _ <,则会引发异常
Unhandled Exception: System.InvalidOperationException: Cannot see if a key
has been …Run Code Online (Sandbox Code Playgroud) 我有一个像这样的.txt文件:
6 4
1 2
2 3
3 4
4 5
1 2 4 5
如何在C#中将其用作命令行参数?