[英]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.