简体   繁体   English

在 Mac OSX 上的 Sublime Text 3 中运行 C++

[英]Run C++ in Sublime Text 3 on Mac OSX

I know there is a built in C++ compiler and run plugin for ST3.我知道有一个内置的 C++ 编译器和 ST3 的运行插件。 This builds my program just fine.这很好地构建了我的程序。 Running the code, it runs the first part in its console, but stops at the first cin >> .运行代码,它运行控制台中的第一部分,但在第一个cin >>处停止。 The code runs fine when I run the file compiled in ST3 straight from the terminal.当我直接从终端运行在 ST3 中编译的文件时,代码运行良好。

Source code:源代码:

#include <iostream>
using namespace std;

int main()
{
   int begInv;
   int sold;
   int store1, store2, store3;

   // Get the beginning inventory for all the stores.
   cout << "One week ago, 3 new widget stores opened \n";
   cout << "at the same time with the same beginning \n";
   cout << "inventory. What was the beginning inventory?";
   cin >> begInv;

   // Set each store's inventory.
   store1 = begInv;
   store2 = begInv;
   store3 = begInv;

   // Get the number of widgets sold at store 1.
   cout << "How many widgets has store 1 sold? ";
   cin >> sold;
   store1 -= sold; // Adjust store 1's inventory.

   // Get the number of widgets sold at store 2.
   cout << "How many widgets has store 2 sold? ";
   cin >> sold;
   store2 -= sold; // Adjust store 2's inventory.

   // Get the number of widgets sold at store 3.
   cout << "How many widgets has store 3 sold? ";
   cin >> sold;
   store3 -= sold; // Adjust store 3's inventory.

   // Display each store's current inventory.
   cout << "\nThe current inventory of each store:\n";
   cout << "Store 1:"  << store1 << "\n";
   cout << "Store 2:"  << store2 << "\n";
   cout << "Store 3:"  << store3 << "\n";
   return 0;
}

Screenshot of the result in ST3. ST3 中结果的屏幕截图。

If anyone knows why it's only running halfway, and could help me figure it out, that would be amazing.如果有人知道为什么它只运行了一半,并且可以帮助我弄清楚,那就太棒了。 Thanks!谢谢!

I would guess that the issue arises not because you compile with sublime, but rather that you are trying to run the application from inside the sublime, because it cannot handle interactive programs well.我猜想这个问题的出现不是因为你用 sublime 编译,而是你试图从 sublime 内部运行应用程序,因为它不能很好地处理交互式程序。

If you compile your application from the sublime and run it from the console, everything should work just fine.如果你从 sublime 编译你的应用程序并从控制台运行它,一切都应该正常工作。

You could use the tricks specified in this answer to run the application in an external cmd terminal.您可以使用此答案中指定的技巧在外部 cmd 终端中运行应用程序。

Try this in Mac :在 Mac 上试试这个:

 {
    "cmd": ["bash", "-c", "/usr/bin/g++ '${file}' -std=c++11 -o '${file_path}/${file_base_name}' && open -a Terminal.app '${file_path}/${file_base_name}'"]
 }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM