2011-05-16 44 views
4

当我编写一个C程序并使用独立编译器,如MinGW编译它,我可以写“myprogram.exe < test.txt”和标准输入是测试。文本。文件作为标准输入命令行中的C在visual studio

我该如何在Visual Studio 2010中做到这一点?我知道项目属性中的“命令参数”,然后调试器,但我不知道该键入什么。它只是输入文件或其他东西的路径吗?

+0

可能重复(http://stackoverflow.com/questions/843342/reading-input-from -file-in-visual-studio-2008) – Fraser 2012-07-14 03:29:59

+0

[将管道输入到Visual Studio中进行调试的C++程序中](http://stackoverflow.com/questions/9613059/piping-input-into-ac-program -to-debug-in-visual-studio) – 2013-02-06 16:41:48

回答

2

你不能直接在Visual Studio中做到这一点。 I/O重定向是命令处理器的一个功能,而不是VS.您可以打开命令提示符,导航到该目录中的可执行文件生命发出命令:

myprogram.exe < test.txt 

有(假设test.txt的也是这个目录,如果不是你可以随时使用完整路径名称)。

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

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

Leave命令参数为空。不过,我从来没有尝试过。它可能行不通。

+0

感谢您的回复!我确实有一个后续问题。我想使用VS2010的主要原因是调试器。有没有什么办法可以让我和调试器一起使用单独的命令提示符? – Anonymoose 2011-05-16 18:05:03

-1

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

否则 您应该能够从Visual Studio的控制台上运行你的应用程序

开始 - >程序 - >微软的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); 
      } 
     } 
    } 
} 

Visual Studio 2010 Console Application Argument settings

+0

你在哪里指定?我去了项目属性 - >配置属性 - >调试,并在命令参数类别中键入文件路径,但没有什么不同。 – Anonymoose 2011-05-16 18:18:39

+0

我写了这个小程序。我在上面的编辑中附加了图片。 class Program {static void Main(string [] args){if(args.Length> 0){foreach(args中的var项){Console.WriteLine(“{0}”,item); }}}} – kanchirk 2011-05-16 19:26:18

+1

本机语言(C和C++)的设置与C#等托管语言完全不同。 – Ferruccio 2014-07-17 22:12:15

0

这是t的函数他命令行shell程序,而不是编译器。如果你在msys's bash下运行,而不是使用默认的(糟糕的)Windows DOS外壳,你可以做到这一点。

+0

Visual Studio不仅是一个编译器。 – BartoszKP 2017-07-03 15:15:26

8

Visual Studio确实支持这种用例。对于C++项目,请转至属性,配置属性,调试,然后在命令参数中输入“< test.txt”。

2

转到您的项目属性,并在“配置属性>调试”,喜欢写东西,在“命令参数”字段中输入以下: < "$(TargetDir)\input.txt"

注:

  • $(TargetDir)扩展到您的项目的“调试”文件夹,所以请确保input.txt在那里。你可以在这里放置任何路径,但要确保它是绝对的。
  • 务必使用双引号,否则如果路径中包含空格,将会出现错误。

(使用Visual Studio 2013与C++)[在Visual Studio 2008从文件中读取输入]的

相关问题