vad kan vara fel? <programmering>

Permalänk

vad kan vara fel? <programmering>

Hej, skrev ett litet program som skulle vara lätt att göra. Var ett tag sedan jag programmerade senare och har glömt en del.
så skrev ett litet kort program för att komma igång.

#include <iostream> #include <fstream> #include <string> using namespace std; int main() { ifstream text("fil.txt"); string x; while (text >> x) { cout << x << endl; if(x = "mitt") { cout << "found" << x; } } }

feerror: could not convert 'std::basic_string<char, std::char_traits<char>, std::allocator<char> >(((const std::basic_string<char, std::char_traits<char>, std::allocator<char> >&)((const std::basic_string<char, std::char_traits<char>, std::allocator<char> >*)(& x)))).std::basic_string<_CharT, _Traits, _Alloc>::operator= [with _CharT="char," _Traits="std::char_traits<char>," _Alloc="std::allocator<char>"](((const char*)"mitt"))' to 'bool'|

då x är en string borde man väll kunna jämnföra den med "mitt"?

Permalänk
Medlem

if(x == "mitt")

kanske funkar bättre.

EDIT:
sen kanske man ska använda sig av string::compare i C++ egentligen.
(var länge sedan jag pysslade med C++, är mest C# nu för tiden...)

Visa signatur

as far as we can tell, the massacre went well...

Permalänk
Medlem

Eftersom du skrivit

x = "mitt"

vilket betyder att strängen "mitt" sparas i variablen x, kommer hela uttrycket vara en sträng. Använd istället == för att göra jämföringar

Permalänk
Skrivet av jovnas:

if(x == "mitt")

kanske funkar bättre.

EDIT:
sen kanske man ska använda sig av string::compare i C++ egentligen.
(var länge sedan jag pysslade med C++, är mest C# nu för tiden...)

Skrivet av jorel:

Eftersom du skrivit

x = "mitt"

vilket betyder att strängen "mitt" sparas i variablen x, kommer hela uttrycket vara en sträng. Använd istället == för att göra jämföringar

Haha, nu känner jag mig riktigt dum x*)

Permalänk
Skrivet av krogge123:

Haha, nu känner jag mig riktigt dum x*)

Det är nog det mest vanliga felet jag brukar göra, så dum ska du inte känna dig!
Ibland glömmer man ju ; också, men det säger ju iaf kompilatorn till om.