Autor |
Nachricht |
|
Cody227 CULT-Urgestein
Anmeldedatum: 03.05.2011 Beiträge: 1217 Wohnort: Hamburg
|
Verfasst am: 30.09.2012, 14:11 • Titel: |
|
|
Man ich komm bei dem Scheiß IndexOf nicht weiter:
Zitat: |
String^ meinString;
int Index = meinString -> IndexOf('\n') |
expected constructor, destructor, or type conversion before '^' token
expected `,' or `;' before '^' token
Zitat: |
string^ meinString;
int Index = meinString -> IndexOf('\n') |
expected unqualified-id before '^' token
expected `,' or `;' before '^' token
Zitat: |
string meinString;
int Index = meinString -> IndexOf('\n'); |
base operand of `->' has non-pointer type `std::string'
Zitat: |
string meinString;
int Index = meinString.IndexOf('\n'); |
'struct std::string' has no member named 'IndexOf'
und alle 4 Versionen davon hab ich in irgendwelchen Foren und die 1. sogar in der MSDN gefunden |
|
Nach oben |
|
|
FlyingGekko Globaler Moderator
Anmeldedatum: 01.06.2003 Beiträge: 4521 Wohnort: Linz/ Urfahr
|
Verfasst am: 30.09.2012, 14:49 • Titel: |
|
|
@Cody: Ok, du scheinst also noch wirklich sehr wenig Erfahrung mit der Materie zu haben. Das ^ hat da auf jeden Fall nichts verloren. Vermutlich wurde das irgendwie beim Copy and Paste fehlinterpretiert.
Einen String deklarierst du in C einfach mit:
string meinString;
Du kannst dir den String nun vorstellen wie ein char-array, wobei meinString auf das erste Character des Strings zeigt. Daher kannst du mit meinString[3] zb. auch das vierte Character erreichen.
Außerdem solltest du als Anfänger noch auf Späße wie meinString.IndexOf oder Pointer verzichten. Damit handelst dir nur Probleme ein, wenn du mit der Materie nicht vertraut bist.
Was genau hat dich an der von mir vorgeschlagenen Vorgehensweise gestört? Hier benötigst du nur sehr einfache Abfragen ala:
if(temp=="\n") {....}
mfg Stephan
PS: Um ca. 10 Uhr stelle ich den Code in groben Zügen hier rein. Testen kann ich leider nicht selbst, da mir hier die Entwicklungsumgebung fehlt. Allerdings beschränk ich mich dabei immer auf Grundfunktionen, da ich selbst in letzter Zeit kaum C programmiere und daher mit den Speziallösungen nicht mehr so vertraut bin.
Zuletzt bearbeitet von FlyingGekko am 30.09.2012, 14:59, insgesamt einmal bearbeitet |
|
Nach oben |
|
|
Cody227 CULT-Urgestein
Anmeldedatum: 03.05.2011 Beiträge: 1217 Wohnort: Hamburg
|
Verfasst am: 30.09.2012, 14:55 • Titel: |
|
|
Also in der MSDN war immer ein ^ hinter dem string. Hab mich auch gewundert was das soll. Jedenfalls hab ich filebuffer.IndexOf jetzt einfach durch filebuffer.find() ersetzt und das scheint zu klappen. Muss nur noch gucken ob auch das richtige ergebnis raus kommt. |
|
Nach oben |
|
|
FlyingGekko Globaler Moderator
Anmeldedatum: 01.06.2003 Beiträge: 4521 Wohnort: Linz/ Urfahr
|
Verfasst am: 30.09.2012, 15:03 • Titel: |
|
|
Meine letzte Vorlesung zu dem Thema ist auch schon eine Weile her, aber ich könnte mir höchsten vorstellen, dass String^ einen speziellen Datentyp darstellt, der auf dem Dateityp string basiert. Dieser müsste aber dann irgendwo in einem der .h Files deklariert werden, was in deinem Fall wohl nicht basiert.
In welcher Programmiersprache setzt du das ganze jetzt wirklich um? C oder C++?
mfg Stephan |
|
Nach oben |
|
|
Cody227 CULT-Urgestein
Anmeldedatum: 03.05.2011 Beiträge: 1217 Wohnort: Hamburg
|
Verfasst am: 30.09.2012, 15:11 • Titel: |
|
|
eigentlich C++, aber durch WinAPI eher ein Mischmasch, denn das ist ja C. :/ |
|
Nach oben |
|
|
FlyingGekko Globaler Moderator
Anmeldedatum: 01.06.2003 Beiträge: 4521 Wohnort: Linz/ Urfahr
|
Verfasst am: 30.09.2012, 15:12 • Titel: |
|
|
Dann bleibe bei C. Die Vorteile von C++ kannst du aktuell ohnehin nicht nutzen. |
|
Nach oben |
|
|
aaron Administrator
Anmeldedatum: 15.01.2003 Beiträge: 15344
|
|
Nach oben |
|
|
FlyingGekko Globaler Moderator
Anmeldedatum: 01.06.2003 Beiträge: 4521 Wohnort: Linz/ Urfahr
|
Verfasst am: 30.09.2012, 16:27 • Titel: |
|
|
@aaron: Es wäre toll wenn du einfach ein Beispiel für diese *.txt hochladen könntest. Dann lässt sich der Spaß in ein paar Minuten realisieren.
mfg Stephan |
|
Nach oben |
|
|
aaron Administrator
Anmeldedatum: 15.01.2003 Beiträge: 15344
|
|
Nach oben |
|
|
FlyingGekko Globaler Moderator
Anmeldedatum: 01.06.2003 Beiträge: 4521 Wohnort: Linz/ Urfahr
|
Verfasst am: 30.09.2012, 16:41 • Titel: |
|
|
Habe grad kurz mal Zeit.
Da das Einlesen eines einzelnen Characters aus der Datei ja schon klappt, verwende ich im Code die Pseudo-Funktion getchar(). Folgende Schleife zählt die Anzahl der relevanten Zeilen.
Code: |
int cnt=0;
int flag=0;
char temp=getchar();
while(temp != EOF) {
if(temp == "\n" && flag==1) {
cnt++;
flag=0;
}
else {
if(temp != " ") {
flag=1;
}
temp=getchar();
}
|
Ich kann den Code leider nicht testen, und er musst noch verfeinert werden, aber im Groben sollte das so klappen.
mfg Stephan |
|
Nach oben |
|
|
|