Forumet - Ser ni felet i denna kod?

Ser ni felet i denna kod?

439 0 48
Förstår inte vad jag har gjort fel nu, har nog dubbelkollat koden 14 gånger. Koden kompilerar utan problem, men loopen är oändlig.


#include <iostream>
#include <fstream>
#include <string>

int main() {
std::ifstream f("gdxg");

std::string str;
getline(f, str); // format: (0,0,"str")(23,66,"anotherstr")
size_t found;

found = str.find(")");
while (found != std::string::npos) {
std::string temp = str.substr(0,int(found));
str = str.substr(int(found), str.size());
found = str.find(")");
}

f.close();
return 0;
}


Det fungerar inte att skriva ut värdet på found heller, alldeles som inget lagras i den. Kaka till den som hittar felet.
pröva att byta ut
        while (found != std::string::npos) {
std::string temp = str.substr(0,int(found));
str = str.substr(int(found), str.size());
found = str.find(")");
}


mot

        while (found != std::string::npos) {
std::string temp = str.substr(0,int(found));
str = str.substr(int(found)+1, str.size());
found = str.find(")");
}


Jag tror att substr():s startposition är samma som du fann ett tecken på, vilket betyder att till exempel "hitler)anus" substr():as som ")anus" istället för "anus", vilket betyder att du för evigt kommer finna samma tecken. Jag har ingen C/C++-kompilator i närheten (läs: jag är lat), så pröva att pröva efter det.

Spana också in:

armagan:

men python kan jag lite grann på. Men ska jag va ärligt så tycker jag att "python" värkligen är pyton. Det är ett ganska kasst program. Gämfört dem Visual Basic. Eller något annat.


Du måste vara en ganska skicklig programmerare, som är kvalificerad att göra den bedömningen! Har du kanske skrivit något program man kan få titta på? Man kanske kan lära sig ett och annat...
armagan:

men python kan jag lite grann på. Men ska jag va ärligt så tycker jag att "python" värkligen är pyton. Det är ett ganska kasst program. Gämfört dem Visual Basic. Eller något annat.


Program? Det är ett språk för helvete. Och att jämföra python med Visual Basic...

Ja, du är onekligen en av de där lägre stående människorna.
armagan:

Gämfört dem Visual Basic. Eller något annat.


Tja, Visual basic har inte samma krav på att man skriver rätt, så det passar dig?
Många andra språk är nämligen känsliga för gemener och versaler.

Man kan inte säga att ett språk är kasst, man kan säga att vissa språk är värdelösa för att göra vissa saker.

Visual Basic suger när det gäller att göra annat är plugins/extensions till Microsoftprogram, men när man väl vill göra något sådant finns inte många alternativ...

Iaf, C/+C++ är nästan det enda man kodar i om man vill göra något seriöst, så som en linuxkärna, ett OS, ett 3D-spel, eller dylik.

Jag föredrar Java, då det är såpass plattformsoberoende, och är lättare att debugga än C++.

Vill man däremot göra beräkningar och hantera data, föreslår jag mathematica, (eller kanske Matlab, men det har jag ingen erfarenhet av).

Python är ett schysst scripstråk, och ypperligt första program att lära sig OOP och imperativ programmering i.

Scheme är trevligt om man vill lära ut closures och funktionell programmering. Det är väldigt elegant, och med schemekunskap kan man utnyttja mathematica bättre.