Avatar billede stufkan Nybegynder
25. december 2006 - 17:38 Der er 8 kommentarer

fejl med string, char

jeg er ved at lave et program der først lægger en cd ind på computeren og derefter konverterer filerne til .mp3 ..

koden ser nu sådan ud:
#include <iostream>
#include <string>

using namespace std;

int main()
{
string blade, bit;
const char *bitr;
bitrate:
cout<<"\nAngiv ønskede bitrate. \nTilladte bitrates er 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, og 320 kBit/s\n";
cin>>bit;
bitr = bit.c_str();
if (bitr != "32" || "40" || "48" || "56" || "64" || "80" || "96" || "112" || "128" || "160" || "192" || "256" || "320")
{
cout<< "Forkert bitrate";
goto bitrate;
}

else {

system("cdparanoia -B 1-");
system((blade + bit).c_str());

}

}


Men... når jeg angiver bitrate 320 f.eks, looper den tilbage til bitrate:.. jeg er ret sikker på at det er min brug af string, char, const char der er gal.. hvad er fejlen?
Avatar billede arne_v Ekspert
25. december 2006 - 17:46 #1
du kan ikke sammenligne char* på den måde
Avatar billede arne_v Ekspert
25. december 2006 - 17:48 #2
if (strcmp(bitr,"32")!=0 && strcmp(bitr,"40")!=0 && ...

måske
Avatar billede stufkan Nybegynder
25. december 2006 - 17:49 #3
kan man lave noget lusk med at array? (er ikke særlig meget inde i arrays, så det kan godt være jeg er helt galt på den)
Avatar billede arne_v Ekspert
25. december 2006 - 18:09 #4
ja - du kan godt loope gennem et array

du kan også overveje at konvertere til int
Avatar billede bertelbrander Novice
25. december 2006 - 20:25 #5
if (bit != "32" && bit != "40" && ...)

Bør virke.
Avatar billede stufkan Nybegynder
25. december 2006 - 21:05 #6
bertel du er genial ;P
Avatar billede stufkan Nybegynder
25. december 2006 - 23:00 #7
men hvad er forskellen? Burde begge dele ikke virke?
Avatar billede arne_v Ekspert
25. december 2006 - 23:05 #8
med en char* skal du bruge

strcmp(s,"xxx")==0

med en string skal du bruge

s == "xxx"

og tilsvarende for !=
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester