【发布时间】:2016-02-11 18:40:35
【问题描述】:
我已经编写了一个代码,该代码必须编写一个数学函数,然后给出图像。首先,将函数作为字符串变量引入,但不知道如何将其转换为另一种类型的变量以返回函数的图像。
我得到的编译器错误是:
无法将参数“
1”的“std::string {aka std::basic_string<char>}”转换为“const char*”到“int printf(const char*, ...)”
#include<iostream>
#include<cmath>
#include<math.h>
#include<vector>
#include<stdio.h>
#include<iomanip> //setprecision//
#include<sstream>
#include<string>
#define precisio 4
#define K 100
using namespace std;
double valors(double a, double b);
double g(double x);
double x;
double a = x;
double y(x);
int i;
int main () {
cout << setprecision(precisio);
cout << "Escriu l'interval de la funció" << endl;
double a, b;
cout << "\n a ="; cin >> a;
cout << "\n b ="; cin >> b;
cout << "Escriu la funcio" << endl; string s;
cin >> s; cout << s;
double y = printf(s.c_str());
valors(a,b);
}
double valors(double a, double b){
int punts = K*(b-a) + 1;
double amplada = (b-a)/K;
cout << "\n\tx\tf(x)" << endl;
for (int i = 0; i < punts; i++) {
cout << "\t" << a << "\t" << g(a) << endl;
a = a + amplada;
}
}
double g(double x){
return y;
}
【问题讨论】:
-
你为什么要这样做:
double y = printf(s.c_str());什么时候可以像上面几行一样使用cout << s;? -
使用调试器将有助于澄清问题。这是学习使用调试器的一个很好的例子。
-
此代码无需任何编辑即可编译和运行。无论问题是什么,它要么不在此代码中,要么不是所要求的。
-
没有其他人看到 valors() 缺少的回报? O.o
-
请edit 将您的代码简化为minimal reproducible example 的问题。您当前的代码包含许多与您的问题无关的内容 - 一个最小样本通常看起来类似于一个好的单元测试:只执行一项任务,并为可重复性指定输入值。
标签: c++ c++11 visual-c++ dev-c++ visual-c++-2010