簡體   English   中英

C++ 使用 g++,沒有結果,沒有打印

[英]C++ using g++, no result, no print

我正在慢慢地從使用 Python 轉向使用 C++,但我不明白如何運行任何代碼。 我正在使用 g++ 編譯器,但我的函數沒有得到任何結果。

// arrays example
#include <iostream>
using namespace std;

int foo [] = {16, 2, 77, 40, 12071};
int n, result=0;

int main ()
{
  for ( n=0 ; n<5 ; ++n )
  {
    result += foo[n];
  }
  cout << result;
  return 0;
}

如果我在 VSCode 中運行此示例並指定我要使用它返回的 g++ 編譯器: Terminal will be reused by tasks, press any key to close it. . 如果我通過 cmd 編譯它並運行任務,一個新的 cmd 窗口會閃爍,但什么也沒有發生。

我找到了 g++ doc,其中說明了如何使用 g++ 進行編譯,並顯示了以下示例:

#include <stdio.h>

void main (){
    printf("Hello World\n");
}

但我什至不能運行編譯器,因為它說

error: '::main' must return 'int'
 void main(){
           ^

如何在 cmd 或 ide 終端中打印內容? 我不明白。

我相信您以錯誤的方式使用 VSCode。 您必須知道默認情況下它沒有集成編譯器,但您需要在命令行中編譯源文件並運行可執行文件:

$ g++ hello.cpp
$ ./a.out

您的第一個示例運行沒有問題。 在這里查看

您的第二個示例有錯誤,因為 C++ 中沒有void main() 相反,你需要有

int main() {

    return 0;
}

更新

如果運行可執行文件導致打開和關閉窗口,您可以使用以下方法之一修復該問題:

  • 捷徑
#include <iostream>
using namespace std;

int main() {
   system("pause");

   return 0;
}
  • 首選
#include <iostream>
using namespace std;

int main() {
   do {
     cout << '\n' << "Press the Enter key to continue.";
   } while (cin.get() != '\n');

   return 0;
}

為什么不需要 std::endl ?

一些評論建議改變

cout << result;

cout << result << endl;

將解決這個問題,但在這種情況下,當上面的行是主函數中的最后一行時,這真的無關緊要,因為程序的退出會刷新當前使用的所有緩沖區(在這種情況下是std::cout )。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM