在VisualStudio的命令行中以C中的stdin格式保存文件

在VisualStudio的命令行中以C中的stdin格式保存文件,c,visual-studio-2010,command-line,command,C,Visual Studio 2010,Command Line,Command,当我编写C程序并使用独立编译器(如MinGW)编译它时,我可以编写myprogram.exe程序->Microsoft Visual Studio 2xxx->Visual Studio命令提示符 节目: class Program { static void Main(string[] args) { if (args.Length > 0) { foreach (var item in args)

当我编写C程序并使用独立编译器(如MinGW)编译它时,我可以编写myprogram.exe
我如何在VisualStudio2010中做到这一点?我知道项目属性和调试器中有命令参数,但我不知道在那里键入什么。它只是输入文件的路径还是其他东西?

您不能在Visual Studio中直接执行此操作。I/O重定向是命令处理器的一项功能,而不是VS。您可以打开命令提示符,导航到可执行文件所在的目录并发出以下命令:

myprogram.exe < test.txt
假设test.txt也在该目录中,如果没有,则始终可以使用完整的路径名

更新:通过让VS为您运行命令提示符并启动您的程序,您可以做您想做的事情。在配置属性|调试下,将命令字段中通常为$TargetPath的内容替换为:

cmd.exe /c "$(TargetPath)" < source-file

将命令参数留空。不过,我从来没有试过这个。它可能不起作用。

对于visual studio中的项目,右键单击该项目并选择“属性”。 在“属性”窗口中,可以键入要用作输入的物理文件的绝对路径

否则 您应该能够从VisualStudio的控制台运行应用程序

开始->程序->Microsoft Visual Studio 2xxx->Visual Studio命令提示符

节目:

    class Program
{
    static void Main(string[] args)
    {
        if (args.Length > 0)
        {
            foreach (var item in args)
            {
                Console.WriteLine("{0}", item);
            }
        }
    }
}

这是命令行shell程序的函数,而不是编译器的函数。如果您在Windows DOS shell下运行而不是使用默认的蹩脚Windows DOS shell,则可以完全做到这一点。

Visual Studio确实支持此用例。对于C++项目,转到属性、配置属性、调试和In命令参数类型<测试.txt.< /p> 转到项目属性,在“配置属性>调试”下,在命令参数字段中写下如下内容: <$TargetDir\input.txt

注:

$TargetDir将扩展到项目的调试文件夹,因此请确保存在input.txt。您可以在这里放置任何路径,但请确保它是绝对路径。 请确保使用双引号,否则,如果路径包含空格,将出现错误。
使用Visual Studio 2013和C++

谢谢您的回复!不过,我还有一个后续问题。我想使用VS2010的主要原因是用于调试器。有没有办法将单独的命令提示符与调试器结合使用?您在哪里指定?我去了Project Properties->Configuration Properties->Debugging并在Command Arguments类别中键入了文件路径,但没有什么不同。我编写了这个小程序。我附加在上面的编辑图像。类程序{static void Mainstring[]args{if args.Length>0{foreach var item in args{Console.WriteLine{0},item;}}本地语言C++的设置与C语言的管理完全不同。Visual Studio可能的副本可能不仅仅是编译器。它在菜单项调试>属性>调试DARCT->命令参数下。