Functie werkt niet mee

Status
Niet open voor verdere reacties.

Jayster2

Gebruiker
Lid geworden
3 nov 2008
Berichten
39
Hallo,

ben ik alweer met een noob vraag. Ach, iedereen moet ergens beginnen. Iniedergeval, ik kan mijn probleem niet oplossen want in de tutorials staan alleen voorbeelden van functies waarbij het getallen returned en geen strings bijv. Hoe kun je functies die zinnen returnen ontvangen zeg maar ?


Code:
#include <iostream>
#include <string>
#include <fstream>
using namespace std;

struct host {
	string name;
	string ip;
} holland, uk, us;

int printerror(int n) {
	string a;
	string errormsg[3]
	errormsg[1] = "test1"
	errormsg[2] = "test2"
	a = errormsg[n];
	return a;
}

int main () {
	string z;
	string mystr;
	holland.name = "blabla";
	holland.ip = "0.1.2.3.4";
	
	ifstream myfile;
	myfile.open ("example.txt", ios::out | ios::app);
	if (myfile.is_open()) {
		while (! myfile.eof() ) {
		getline(myfile,mystr);
		if (mystr != "") {
			cout << mystr << endl;
			}
			else {
			z = printerror(2);
			cout << z;
			}
		}
	myfile.close();
	}
	else {
	z = printerror(1);
	cout << z;
	}	
	return 0;
}

compiling C++ using -ansi -pedantic-errors -Wall
z.c: In function ‘int printerror(int)’:
z.c:14: error: expected initializer before ‘errormsg’
z.c:17: error: cannot convert ‘std::string’ to ‘int’ in return

Groetjes
 
Code:
int printerror(int n) {
	string a;
	string errormsg[3]
	errormsg[1] = "test1"
	errormsg[2] = "test2"
	a = errormsg[n];
	return a;
}

Puntkomma's zouden kunnen helpen... dus -> string errormsg[3];

Verder verwacht de functie printerror als return type een int, en geen string. (en wat als N buiten het bereik van de array valt ?)

Code:
std::string printerror(const int n)
{
  static std::string errormsg[] = { "Test1", "Test2" };
   //eventueel nog controleren of N binnen het bereik van de array valt  
   return errormsg[n];
}
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan