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

时间:2017-10-10 22:05:08

标签: c++ macos sublimetext3 sublimetext sublime-text-plugin

我知道有一个内置的C ++编译器和ST3的运行插件。这使我的程序很好。运行代码时,它在其控制台中运行第一部分,但在第一个cin >>处停止。当我直接从终端运行ST3中编译的文件时,代码运行正常。

源代码:

#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.

如果有人知道为什么它只是半途而废,并且可以帮助我搞清楚,那就太棒了。谢谢!

2 个答案:

答案 0 :(得分:3)

我猜这个问题不是因为你用sublime编译,而是你试图从sublime中运行应用程序,因为它无法很好地处理交互式程序。

如果您从sublime编译应用程序并从控制台运行它,一切都应该正常工作。

您可以使用此answer中指定的技巧在外部cmd终端中运行该应用程序。

答案 1 :(得分:0)

在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}'"]
 }