Sida 1 av 1

Problem i C++ [LÖST]

Postat: 29 dec 2007, 21:43
av lord
Hejsan.

Har lite problem med ett program i C++ jag försöker göra. Det ska översätta från rövarspråket till det vanliga språket och tvärtom. Men jag får tre fel. För tillfället har jag fyra funktioner. Tre av dessa ska returnera en "string", men där blir det fel, för IDEt säger att string inte är en typ. Men jag har deklarerat string variabler i funktionerna, och där blir det inga problem.

Min kod:

Kod: Markera allt

#include <iostream>
#include <string>

// Prototypes
string EnterText(string txt);
string ToPiratesLanguage(string txt);
string ToNormalLanguage(string txt);
bool IsChange(char letter);

int main()
{
    return EXIT_SUCCESS;
}

// Enter an string
string EnterText(string txt)
{
    // Declare variable
    string in = "";

    // Accept input
    cout<< txt;
    cin>> in;

    // Return the given string
    return in;
}

// Translate to pirates language
string ToPiratesLanguage(string txt)
{
    // Declare variables
    string pl = "";
    string temp = "";

    // Create the pirate language translation of the given string
    for (int n = 0; n < txt.size(); ++n)
    {
        // Get the substring
        temp = txt.substr(n, 1);

        // Check if the letter is an "konsonant", like "H" or "g"
        if (IsChange( txt ) == true)
        {
            pl += temp + "o";
        }

        pl += temp;
    }

    // Return the "priate language" version of the given string
    return pl;
}

// Translate to normal language
string ToNormalLanguage(string txt)
{
    // Declare variable
    string nl = "";

    // Return the "normal language" translation of the given string
    return nl;
}

// If the given letter is an "konsonant"
bool IsChange(char letter)
{
    return true;
}
Notera att jag får samma problem även hos prototyperna. Och jag har själv ingen aning om vad som är fel...

Kan någon hjälpa mig?

SV: Problem i C++

Postat: 29 dec 2007, 22:24
av Smygis
using namespace std;

För att leka i rätt namnrymd.

consonant heter det på engelska också. Fast med C då.

SV: Problem i C++

Postat: 29 dec 2007, 22:33
av lord
Det där löste alla mina problem och gav mig ett nytt. Felet:
main.cc:45: error: cannot convert ‘std::string’ to ‘char’ for argument ‘1’ to ‘bool IsChange(char)’
Koden:
#include <iostream>
#include <string>

using namespace std;

// Prototypes
string EnterText(string txt);
string ToPiratesLanguage(string txt);
string ToNormalLanguage(string txt);
bool IsChange(char letter);

int main()
{
    return EXIT_SUCCESS;
}

// Enter an string
string EnterText(string txt)
{
    // Declare variable
    string in = "";

    // Accept input
    cout<< txt;
    cin>> in;

    // Return the given string
    return in;
}

// Translate to pirates language
string ToPiratesLanguage(string txt)
{
    // Declare variables
    string pl = "";
    string temp = "";

    // Create the pirate language translation of the given string
    for (int n = 0; n < txt.size(); ++n)
    {
        // Get the substring
        temp = txt.substr(n, 1);

        // Check if the letter is an "konsonant", like "H" or "g"
        if (IsChange( txt ) == true)
        {
            pl += temp + "o";
        }

        pl += temp;
    }

    // Return the "priate language" version of the given string
    return pl;
}

// Translate to normal language
string ToNormalLanguage(string txt)
{
    // Declare variable
    string nl = "";

    // Return the "normal language" translation of the given string
    return nl;
}

// If the given letter is an "konsonant"
bool IsChange(string letter)
{
    return true;
}
Det är i funktionen "ToPiratesLanguage", på raden

Kod: Markera allt

if (IsChange( txt ) == true)
som felet uppstår. Vet någon vad problemet är?

SV: Problem i C++

Postat: 29 dec 2007, 22:36
av Smygis
Jopp, medans jag pillar så gjorde jag en ändring i mitt förra inlägg.

bool IsChange(string);

istf char. sedan skulle jag ha ändrat if (IsChange( txt ) == true) till if (IsChange(temp))

SV: Problem i C++

Postat: 20 jan 2008, 02:33
av Johnny Rosenberg
Smygis skrev: using namespace std;
consonant heter det på engelska också. Fast med C då.
Japp, däremot heter inte "vokaler" "vocals"... Visst är det märkligt..? Nåja, skillnaden på "vokaler" och "vowels" är kanske inte heller så stor.

SV: Problem i C++

Postat: 20 jan 2008, 10:36
av lord
Ojdå, ursäkta mig. Hade glömt uppdatera er om att jag fick allt att fungera. Men tack för hjälpen :).