übertrittsfehler??
-
Hallo Leute
ich spiel mich jetzt schon seit ner stunde mit den indizes meiner variablen und jedesmal kommt das dabei raus:
diese zeile wird in der sting.stl makiert:
__RWSTD::rwse_StringIndexOutOfRange);
is das ein übertrittsfehler oder bin ich wieder mal zu blöd??
hier is der code:
#include <stdio.h> #include <iostream.h> #include <strstream> int main() {string Alles, Text1, Text2, Fertig, Temp; int wo=1,laenge, restore=0, i=1; double koordx,koordy; int zeichen=0, ende=0; strstream Tempkx, Tempky; do { wo=Alles.find('\x1B'); Text1=Alles.erase(wo,1); wo=Alles.find('\x1B'); if(wo==0) {wo=Alles.length()+2; ende=1; } Text1=Alles.substr(0,wo); Alles=Alles.erase(0,wo); Temp=Text1; if(Temp=="E") {wo=Alles.find('\x1B'); Text1=Alles.erase(wo,1); wo=Alles.find('\x1B'); Text1=Alles.substr(0,wo); Alles=Alles.erase(0,wo); Temp=Temp+Text1; } Text1=Temp; if(Temp[0]=='E'&&Temp[1]=='%'&&Temp[2]=='-'&&Temp[3]=='1') {Fertig=Fertig+"%! "; Text1=' '; } if(Temp[0]=='&'&&Temp[1]=='l'&&Temp[2]=='1'&&Temp[3]=='O') {Fertig=Fertig+"90 rotate 1000 800 translate "; Text1=' '; } if(Temp[0]=='&'&&Temp[1]=='l'&&Temp[2]=='0'&&Temp[3]=='O') {Fertig=Fertig+"800 1000 translate "; Text1=' '; } if(Temp=="\22") {Fertig=Fertig+"-10 0 rmoveto "; Text1=' '; } if(Temp[0]=='('&&Temp[1]=='1'&&Temp[2]=='9'&&Temp[3]=='U') {Fertig=Fertig+"/Times-Italic findfont setfont "; Text1=' '; if(Text1!="") {zeichen=1; } } if(Temp[0]=='('&&Temp[1]=='s'&&Temp[2]=='0'&&Temp[3]=='B') {Fertig=Fertig+"/Times-Roman findfont setfont "; Text1=Text1.erase(0,4); if(Text1!="") {zeichen=1; } } if(Temp[0]=='('&&Temp[1]=='s'&&Temp[2]=='3'&&Temp[3]=='B') {Fertig=Fertig+"/Times-Bold findfont setfont "; Text1=Text1.erase(0,4); if(Text1!="") {zeichen=1; } } if(Temp=="(s1P") {Tempkx<<koordx; Tempkx>>Temp; Fertig=Fertig + Temp+" "; Tempky<<koordy; Tempky>>Temp; Fertig=Fertig+Temp; Fertig=Fertig+" moveto "; Text1=' '; } if(Temp=="(s16602T") {Text1=' '; } if(Temp[0]=='('&&Temp[1]=='s') {laenge=Temp.length(); Text2=Text1.substr(laenge,1); Text1=Text1.erase(laenge,1); if(Text2=="V") {Text1=Text1.erase(0,2); Fertig=Fertig+"gsave "+Text1+" scalefont setfont "; restore=1; } } if(Text1[0]=='*'&&Text1[1]=='p') {laenge=Temp.length(); Text1=Text1.erase(0,2); laenge=Text1.length(); Text2=Text1.substr(laenge,1); Text1=Text1.erase(laenge,1); if(Text2=="X") { Tempkx<<Text1; Tempkx>>koordx; koordx=(koordx/11,77)*(-1); } if(Text2=="Y") { Tempky<<Text1; Tempky>>koordy; koordy=(koordy/11,77)*(-1); } Text1=' '; } if(zeichen==1) {zeichen=0; Fertig=Fertig+"('"+Text1+"') show "; if(restore==1) {Fertig=Fertig+"grestore "; restore=0; } } laenge=Alles.length(); }while(ende==0); return 0; }
der code soll ein dateiformat in ein anderes ändern, also .lis -> .ps
dazu hab ich das so gemacht das eben der .lis code eingelesen wird und (steht glaub ich nicht im code drin) und dann durchsucht wird auf escapesequencen... die wird dann weggenommen und die nächste gesucht, der teil dazwischen wird rausgenommen und dann geschaut welcher befehl es ist...
und demnach wird dann eben der ps code eingefügt...mfg Saroll
-
ist das etwa ein Doppelpost??
-
@Saroll
Sorry, aber hier bist du falsch. iostream.h, strstream(.h ??) und die Klasse string haben absolut nichts mit ANSI-C zu tun.Ab ins C++-Forum.
-
Dieser Thread wurde von Moderator/in AJ aus dem Forum ANSI C in das Forum C++ verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
#include <stdio.h> #include <iostream.h>
ist für mich zuviel
vielleicht kenn ichs auch einfach nicht
-
joa, du hast recht iostream is unnötig, aber die stdio brauch ich für
getchar() und putchar()
-
neee du benutzt string obwohl du nicht include <string> eingebunden hast
d.h es soll wohl ein c++ code werden denn in ynsi c gibt es kein string !!!
also : stdio.h ist c also lassen !!!! ausserdem denke ich gibt es in string kein strstream weil streams nicht c sind !!!! ausserdem wurd4est du nicht umsonst hierher c++ abschnitt verschoben
also :#include <stdio.h>//falsch weil kein c++ #include <iostream.h>//heisst <iostream> #include <string> //fehlt using namespace std;//sonst musse immer std::string usw benutzen
ausserdem kann es sein dass du i nicht benutzt???
-
@ truebool: nehme dir ungern die Illusion, aber den thread gibts' noch mal, sogar mit Lsg http://www.c-plusplus.net/forum/viewtopic.php?t=79274
(thread: Windows AnsiString -> Unix ??)
-
jap *g*
stimmt... weil ich davor irgendwas mit ner for-schleife gemacht hab, die brauch ich aber nicht mehr *gg*danke euch
mfg saroll
-
n dann ist doch fein .. war gerade dabei den source durchzuwühlen
naja dann ist doch alles fein.. habsch schon keine illusionen .. nur bissel unaufmerksam und langsam und lassen wir dass