在Visual Studio命令行中以C语言中stdin格式保存文件

new9mtju  于 2022-12-03  发布在  其他
关注(0)|答案(6)|浏览(170)

当我编写一个C程序并使用一个独立的编译器(如MinGW)编译它时,我可以写“myprogram.exe〈test.txt”,标准输入是test.txt。
如何在Visual Studio 2010中执行此操作?我知道Project属性中的“命令参数”,然后是调试器,但我不知道在那里键入什么。它只是输入文件的路径还是其他内容?

du7egjpx

du7egjpx1#

Visual Studio支持此用例。对于C++项目,请转到“属性”、“配置属性”、“调试”,然后在“命令参数”中键入“〈test.txt”。

bweufnob

bweufnob2#

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

myprogram.exe < test.txt

(假设test.txt也在该目录中,如果没有,您可以使用完整的路径名)。

更新:通过让VS为您运行命令提示符并启动程序,您可以完成所需的操作。在“配置属性”下|调试,将“命令”字段中的内容(通常为$(TargetPath))替换为:

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

将“命令参数”留空。但我从未尝试过此操作。它可能不起作用。

l3zydbqr

l3zydbqr3#

转到您的项目属性,在“配置属性〉调试”下,在“命令参数”字段中写入类似以下内容:< "$(TargetDir)\input.txt"
注意事项:

  • $(TargetDir)会展开到项目的“Debug”文件夹,所以要确保input.txt在那里。您可以在这里放置任何路径,但要确保它是绝对路径。
  • 请务必使用双引号,否则,如果路径包含空格,则会出现错误。
  • (使用Visual Studio 2013搭配C++)*
m2xkgtsf

m2xkgtsf4#

这是命令行shell程序的功能,而不是编译器的功能。如果你在msys's bash下运行,而不是使用默认的(蹩脚的)Windows DOS shell,你完全可以做到这一点。

tp5buhyn

tp5buhyn5#

在Visual Studio 2022中,您可以通过在debugging\command参数中放置〈test.txt来将输入重定向到程序。只需注意文件的放置位置。仅当主文件和测试文件位于同一目录中时,此方法才有效。
在窗口顶部查看您正在更改的设置。我建议更改所有配置。
PS.重定向后,你的控制台将立即关闭,所以你必须使用调试器断点来查看输出。我在这一点上被卡住了一个小时。这是令人惊讶的解释它是如何工作的(Preventing console window from closing in Visual Studio
https://i.stack.imgur.com/ivjQC.png

0g0grzrc

0g0grzrc6#

对于visual studio中的项目,右键单击该项目并选择“属性”。在“属性”窗口中,可以键入要用作输入的物理文件的绝对路径。
否则,您应该能够从Visual Studio的控制台运行您的应用程序
开始-〉程序-〉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);
            }
        }
    }
}

x1c 0d1x

相关问题