Вы не правильно определили строковое значение.Синтаксис неверен.На более серьезном замечании вы объявляете неинициализированный указатель *ierr
, и он вызывает ошибки seg во время выполнения.
У меня проблема с функцией ошибки, цель которой - проверить переменную и в определенном случае сказать мне имя переменной и ее значение.
Приведенный ниже код сделает это за вас, но важно понять , когда использовать указатели.
Более того, вам, вероятно, следует немного прочитать строки и ознакомиться скак выглядит определение строки, копирование, инициализация и т. д.
#include <string>
#include <iostream>
using namespace std;
void error(double varvalue, std::string varname)
{
if (varvalue == 0 ) { //if varvalue is equal to 0
cout << "Error: " << varname << " has an invalid value (equal 0)";
cout << "Error number " << varvalue << endl;
return;
}
if (varvalue < 0 ) { //if varvalue is less than 0
cout << "Error: " << varname << " has an invalid value (" << varvalue << " , smaller 0)";
cout << "Error number: " << varvalue << endl;
return;
}
if (varvalue > 0) { //if varvlue is greater than 0
cout<<varname<<" has value: "<<varvalue<<endl;
}
}
int main() {
int Par = 10; // Set initial Par value to 10
error(Par,"Par"); //test variable
}