【问题标题】:How to set output console width in Visual Studio如何在 Visual Studio 中设置输出控制台宽度
【发布时间】:2014-02-09 21:45:18
【问题描述】:

每当我从 Visual Studio 2013 构建和运行我的 C++ 代码时,控制台窗口的宽度都是不可调整的,因此,我的输出会比我想要的更快地推送到下一行。

如何让 Visual Studio 使控制台窗口宽度变大?

如果我需要在我的应用程序中插入代码来执行此操作,有没有办法可以进行编译时检查,以便在不在 Windows 上编译时删除代码?我正在尝试使代码尽可能可移植。

【问题讨论】:

  • 不能右击窗口的标题栏,用编辑菜单设置大小吗?即使在您的应用程序重新构建后,它也应该保留它。
  • 啊。那行得通!出于便携性的原因,我认为这是最好的解决方案。谢谢! :)

标签: c++ windows visual-studio visual-studio-2013


【解决方案1】:

我从 Visual Studio 调试的控制台应用程序经常使用的一个不需要更改代码的解决方案是执行以下操作:

  1. 右键单击正在运行的控制台应用程序的标题栏
  2. 选择属性
  3. 选择布局
  4. 然后设置窗口大小。

关闭对话框后,Windows 应根据您的 Windows 版本保存设置或提示您保存。我相信 Windows 8 或更高版本不会提示,而 Windows 7 或更低版本会提示。

【讨论】:

    【解决方案2】:
    1. 使用Console::SetWindowSize()方法(在.NET框架下)。

      您可以参考here 获取其文档和代码示例。

    2. 或者你可以使用MoveWindow()方法(你也可以移动窗口):

      #include <windows.h>
      using namespace std;
      int main (void)
      {
          HWND console = GetConsoleWindow();
          RECT r;
          GetWindowRect(console, &r); //stores the console's current dimensions
      
          MoveWindow(console, r.left, r.top, 800, 100, TRUE); // 800 width, 100 height
      
          // ...
      }
      

      查看here了解更多信息。


    如果你真的想让你的代码尽可能地可移植,也许你应该通过运行cmd 提示来手动设置它。单击顶部的图标。选择defaults。输入所需的设置。

    【讨论】:

    • 我需要什么#include 才能让它工作?在说 GCC 上构建代码时,如何使它不被编译? (比如通过宏什么的?)
    • @Michael 或者简单地说,您可以按照drescherjm的建议在编辑菜单下进行更改。
    • @Michael 见已更新。您只需要#include &lt;windows.h&gt; 即可使其适用于第二种方法。
    • 啊,你是对的。我认为出于可移植性的原因,我应该按照@drescherjm 的建议进行操作,并通过控制台属性进行设置。谢谢! :)
    【解决方案3】:

    你可以简单地使用这个:

    Console.WindowWidth = Console.LargestWindowWidth - [insert number of pixels from the end of the screen]
    Console.WindowHeight = Console.LargestWindowHeight - [insert number of pixels from the end of the screen]
    

    如果我想将控制台窗口设置为距离屏幕边缘 15 像素,我会这样做:

    Console.WindowWidth = Console.LargestWindowWidth - 15
    

    【讨论】:

    • 请注意,LargestWindowHeightLargestWindowWidth 实际上是控制台窗口可以支持的行数和列数,而不是像素数。所以减去 15 实际上减去了 15 列空间,而不是 15 个像素。只是为将来遇到此问题的人分享。
    • 此答案仅适用于 C++CLI 和 .NET 应用程序。
    • @JimFell 我从未使用过 C++ CLI,这对我来说非常好用。自从我发布此答案以删除该功能后,规范可能已更新?
    猜你喜欢
    • 2018-01-14
    • 2014-03-28
    • 2012-10-21
    • 1970-01-01
    • 2023-03-16
    • 1970-01-01
    • 1970-01-01
    • 2018-06-17
    • 1970-01-01
    相关资源
    最近更新 更多