在 visual studio 中创建 c++ 代码,在 g++ 中创建 运行

Creating c++ code in visual studio and running it in g++

我已经在 visual studio 中创建了 c++ 代码,但大学规范要求它需要 运行 在 g++ 编译器中。

该代码在 visual studio 中完美运行,但在 g++ 中根本不起作用。 为什么是这样? 有没有一种简单的方法可以使代码在 g++ 中工作?

这是我的代码。

#include <iostream> 
#include <vector> 
#include <cmath>
#include <iomanip>
#include <fstream> 

using namespace std;

int main ()
{
    vector<long double> G;
    vector<long double> R;
    int n=1;
    long double result =1;

    R.assign(2,0);
    G.assign(2,123);
    G.at(1)=321;

    while (result >= 0.0000000000000001)
    {

    n++;    
    G.push_back((G.at(n-2) - G.at(n-1)));
    R.push_back(G.at(n)/G.at(n-1));

    result = abs(R.at(n) - R.at(n-1));

    ofstream file;
    file.open("series.txt", std ::ios_base ::app);
    file << n <<"\t" << setw(14) << G.at(n)<<"\t<<setprecision(15)<<R.at(n)<<endl;
    //cout << n <<"\t" <<setw(14)<<G.at(n)<<"\t"<<setprecision(15)<<R.at(n)<<endl;
    file.close();
    }

    system("pause");
    }

我认为交叉编译没有问题,尽管据我所知 linux 系统上没有 system("pause")

错误是缺少终止符。这是由于在第二个 \t

处遗漏了引号

这个

file << n <<"\t" << setw(14) << G.at(n)<<"\t<<setprecision(15)<<R.at(n)<<endl;

应该是这个

file << n <<"\t" << setw(14) << G.at(n)<<"\t"<<setprecision(15)<<R.at(n)<<endl;

要使用 system() 功能,您必须将 #include <stdlib.h> 添加到您的项目并更改

file << n <<"\t" << setw(14) << G.at(n)<<"\t<<setprecision(15)<<R.at(n)<<endl;

file << n <<"\t" << setw(14) << G.at(n)<<"\t"<<setprecision(15)<<R.at(n)<<endl;

然后用 g++ 编译 100%。