繁体   English   中英

C++ 和 EXE 无法运行

[英]C++ and EXE won't run

我有以下 C++ 代码:我试图理解为什么代码编译良好但它不会在 exe 中运行,我试图从结果中获取 output 文件,有任何线索说明为什么会发生这种情况? 它提到的错误是 ios::base 的东西。

编辑1

这是错误, undefined reference to `std::ios_base::Init::Init()' ,我最初以以下方法运行程序:

g++ -o plot1 Derivative.cpp

编辑

我修复了我的代码,代码根据需要采用 function 的派生,并将结果返回到 dat 文件中。

#include <cmath>
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
float function(float j);
int main(){
    const double a =.0001;
    int i = 0;
    string filename;
    double x[100], delta[100], deltax[100],dx1[100],y_1[100],y_0[100],derivative_f[100];
    ofstream myfile;
    cin >> filename;
    myfile.open (filename, ios::out | ios::trunc );
    for(int i = 1; i < 101; i++)    {

         x[i]= i*.2;
         delta[i] = {a * x[i]};
         deltax[i] = {x[i]+delta[i]};
         dx1[i] = {deltax[i]-x[i]};
         y_1[i] = {function(deltax[i])};
         y_0[i] = {function(x[i])};
         derivative_f[i] = {(y_1[i]-y_0[i])/dx1[i]};
         myfile << x[i] << ' ' << derivative_f[i] << endl; 
    } 
    myfile.close();
    return 0;
}
float function(float j){
    float result;
    result = exp(j);
    return result;
}

这是您的第一个问题:

for (int i = 0; 100; i++){

注意你的条件, 100 那是一个无限循环,因为你没有测试它, 100是“真”。 尝试:

for (int i = 0; i < 100; i++){

你的第二个循环有同样的问题。 实际上,这两个循环都不可能是无限的,因为您的程序最终会在尝试读/写未分配的 memory 时崩溃。

暂无
暂无

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

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