c++ - cannot convert string/char to char* vad betyder asterisken?
Hej
Kan någon kolla min kod litegrann.
Den säger att den inte kan konvertera string till char*. Just den biten förstår jag, men om jag använder char istället för string så får jag cannot convert char to char*
Vad betyder den där asterisken?
/*
\x86 : å
\x84 : ä
\x94 : ö
\x8F : Å
\x8E : Ä
\x99 : Ö
*/
#include <iostream>
#include <iomanip>
#include <string>
#include <fstream>
#include <cmath>
using namespace std;
string GeneratePages(string TimsonMaskin, string Upplaga, string Ordernr, string Titel, string Ark, string Btj, string Pallnr){
string var;
var = "<html><body><head><style type=\"text/css\">\n* {margin:0;padding:10px;border-collapse:collapse}\ntd {text-align:center;font-size:40px;font-weight:bold;font-family:helvetica, arial;vertical-align:top}\n.tdtop {text-align:left;border-top:#000 4px solid}\n.tdleft {border-right:#000 4px solid;border-top:#000 4px solid}\n.tdright {border-left:#000 4px solid;border-top:#000 4px solid}\n.text {font-size:110px;font-weight:bold;font-family:helvetica,arial}\n</style></head><table border=\"0\" width=\"800px\"><tr><td colspan=\"2\" style=\"height:350px;vertical-align:bottom;font-size:120px;font-weight:bold\">";
var += TimsonMaskin;
var += "</td></tr><tr><td class=\"tdleft\">Upplaga<br><div class=\"text\">";
var += Upplaga;
var += "</div></td><td class=\"tdright\">Ordernr<br><div class=\"text\">";
var += Ordernr;
var += "</div></td></tr><tr><td colspan=\"2\" class=\"tdtop\">Titel<br><div class=\"text\">";
//.((strlen($titel<="12"))?$titel:substr($titel,0,12)."...").
int i;
i = 0;
while (Titel[i] != 0){
i++;
}
if(i<=12){
var += Titel;
}
else{
var += Titel.substr(0,12);
var += "...";
}
var += "</div></td></tr><tr><td class=\"tdleft\">Ark<br><div class=\"text\">";
var += Ark;
var += "</div></td><td class=\"tdright\">BTJ<br><div class=\"text\">";
var += Btj;
var += "</div></td></tr><tr><td class=\"tdleft\">Pall nr<br><div class=\"text\">";
var += Pallnr;
var += "</div></td><td class=\"tdright\"></td></tr></table></body></html>";
return var;
}
int main(int argc, char *argv[]){
while (1)
cout << "Bekr""\x84""fta varje rad med Enter\n";
cout << "Upplaga (exempel: 3580): ";
string Upplaga;
getline(cin,Upplaga);
cout << "Ordernr (exempel: 65432): ";
string Ordernr;
getline(cin,Ordernr);
cout << "Titel (exempel: Den lilla boken): ";
string Titel;
getline(cin,Titel);
cout << "Ark (F""\x94""rsta arket, tex 1-7): ";
//**************deklarering av Ark
string Ark;
getline(cin,Ark);
cout << "BTJ: ";
string Btj;
getline(cin,Btj);
cout << endl << "Du skrev in f""\x94""ljande: " << endl;
cout << "Upplaga: " << Upplaga << endl;
cout << "Ordernr: " << Ordernr << endl;
cout << "Titel: " << Titel << endl;
cout << "Ark: " << Ark << endl;
cout << "BTJ: " << Btj << endl;
cout << "St""\x84""mmer detta? " << "(j)a / (b)""\x94""rja om / (a)vsluta: ";
string Koll;
getline(cin,Koll);
if (Koll == "j" || Koll == "J"){
cout << "Tack. " << "Genererar nu lapparna";
_sleep (1000);
ofstream myfile ("fil.html");
if (myfile.is_open()){
int AntalHel; //Antal ark som får plats på en helbana
AntalHel = 6000;
int AntalHalv; //Antal ark som får plats på en halvbana
AntalHalv = 12000;
string TimsonMaskin; //Timson-maskin, Timson 1 510 eller Timson 2 520
TimsonMaskin = "Timson 2 520";
//Dela upp Ark med avgränsaren - och spara som vektor Result
char Delim[] = "-";
char Result;
Result = strtok(Ark,Delim);
//**************Här ovan är felet
int Mid;
Mid = ceil(ArkB/2);
for(int i=0;i<Mid;i++){
if(ArkA==ArkB){
AntalHel=AntalHalv;
}
for(int a=0;a<=ceil(Upplaga/AntalHel;a++)){
myfile << GeneratePages(TimsonMaskin,Upplaga,Ordernr,Titel,Ark,Btj,a);
}
}
myfile.close();
}
else{
cout << "Unable to open file";
_sleep (1000);
}
break;
}
else if (Koll == "b" || Koll == "B"){
//Börja om
system("CLS");
}
else if (Koll == "a"){
//Avsluta
break;
}
else {
//Börja om
system("CLS");
}
}
return(0);
}
Jag har fler fel i koden, det vet jag. Sen är inte allt så där optimalt kanske, men jag är väldigt mycket nybörjare på c++.
Tack på förhand
/Niclas