[英]C++ and EXE won't run
我有以下 C++ 代码:我试图理解为什么代码编译良好但它不会在 exe 中运行,我试图从结果中获取 output 文件,有任何线索说明为什么会发生这种情况? 它提到的错误是 ios::base 的东西。
这是错误, 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.