Forum: C++ frågestund

Forum huvudsida -> Programmering -> C++ frågestund

Sidor: 1

Till botten

Bredberg 20:57 - 17:e Augusti 2005 | Post #1
Medlem
Inlägg: 25


Skicka PM
Alla hjälpsamma kodare som kan något om C++ och vill hjälpa mig lite kan ju läsa vidare, ni andra går bort. ok

Fråga 1. Har ett litet funktions problem... Jag vill få in ett namn i en funtion och sdan kunna skriva ut det i en annan. Ungefär som exemplet nedan.

cout << "Du springer fram mot den stora ekdörren och kanckar på.Några ögonblick senare hörs en dov röst "Vem där?"";
cout << "efter en kort betänketid bestämmer du dig för att svara";
cin >> name;
return name;


Håller på att bli galen. Har försökt ovanstående som vanlig void, string funktion med pekare utan pekare, som en egen funktion osv. grrrrrr.

Fråga 2.Kollade lite på Eclipse C++ IDE. Ganska krånglit att få ingång och använda. ,,r det värt att lägga ner tid på Eclipse eller någon annan IDE (SDK (skillnad?))...

Fråga 3. Ska till Norge så jag tänkte ta med lite lätt läsning så jag slängde iväg en beställning på den här boken. Någon som har nått att säga om den?http:///www.internetbokhandeln.se/_114I5GXTV8/XBAZ/bok9163608359.html

ni brukar va så snälla och söta här Smiley

-------------------------
Allt som står i fältet ovan är totalt befriat från upphovsrätt, intelligens och ofta mening. Däremot är texten sällan fri från stavfel.



FunkyChicken 21:52 - 17:e Augusti 2005 | Post #2
Nyhetsredaktör
Inlägg: 800


Skicka PM
uhm, exakt vad är det som inte fungerar i exemplet i fråga 1? Om tanken är att name ska vara en funktion, så gör en temp variabel som får sitt värde av cin och skicka den som argument till funktionen istället. Eller fattade jag fel?

Boken har jag inte läst, men den har ett väldigt bra rykte...




Bredberg 22:40 - 17:e Augusti 2005 | Post #3
Medlem
Inlägg: 25


Skicka PM
Name är bara tänkt att vara en variabel som går att skriva ut var som helst i programmet, det är det som är problemet, får inte till den där dumma saken.
För övrigt skulle ett exempel för en lite trög mupp skulle sitta fint Smiley

-------------------------
Allt som står i fältet ovan är totalt befriat från upphovsrätt, intelligens och ofta mening. Däremot är texten sällan fri från stavfel.



Independence 22:41 - 17:e Augusti 2005 | Post #4
Administratör
Inlägg: 1800


Skicka PM
Fråga 1:

  1.  
  2. string funktion()
  3. {
  4. string name;
  5. cout << "Du springer fram mot den stora ekdörren och kanckar på.Några ögonblick senare hörs en dov röst "Vem där?"";
  6. cout << "efter en kort betänketid bestämmer du dig för att svara";
  7. cin >> name;
  8. return name;
  9. }


Typen av funktionen ska vara samma som typen som returvärdet här.
Det borde inte vara svårare än så faktiskt Smiley

-------------------------

Vi är riddarna som säger fiskbulle!





ozamosi 22:45 - 17:e Augusti 2005 | Post #5
Administratör
Inlägg: 1129


Skicka PM
  1. char func(&string namn)
  2. {
  3. cout << "Du springer fram mot den stora ekdörren och kanckar på"
  4. << "Några ögonblick senare hörs en dov röst "Vem där?"";
  5. cout << "efter en kort betänketid bestämmer du dig för att svara";
  6. cin >> name;
  7. if (name != NULL)
  8. return true;
  9. return false;
  10. }
  11. string namn;
  12. if(func(namn))
  13. cout << "Du heter " << namn << endl;

Så typ?

Edit: indy hann visst före...

-------------------------
Ljusblå

Senast redigerad 22:46 - 17:e Augusti 2005


Independence 23:47 - 17:e Augusti 2005 | Post #6
Administratör
Inlägg: 1800


Skicka PM
Hmm, man kan inte använda o-escape:ade " i texten, då blir det nog problem med kompileringen.. ("Vem där?")

-------------------------

Vi är riddarna som säger fiskbulle!





Celeron 07:08 - 18:e Augusti 2005 | Post #7
Medlem
Inlägg: 418


Skicka PM
,,nnu enklare om du ska kunna komma åt den i hela programmet, gör den global. Jag vet, många tycker inte om det, men det är väldigt praktiskt!
  1.  
  2. #include <iostream>
  3. using namespace std;
  4. string name;
  5. void Namn();
  6. //andra funktiner mm.
  7. void Namn() {
  8. cout << "Du springer fram mot den stora ekdörren och kanckar på.Några ögonblick senare hörs en dov röst \"Vem där?\". Efter en kort betänketid bestämmer du dig för att svara ";
  9. cin >> name;
  10. }

Jag har boken som du har beställt och den är bra!

-------------------------
Det viktigaste är att ha roligt! Har ny hemsida: http://www.freewebs.com/cpperik/



Bredberg 09:47 - 18:e Augusti 2005 | Post #8
Medlem
Inlägg: 25


Skicka PM
Med Celerons metod får jag det att fungera...

#include <iostream>

using namespace std;

string name;
void funktion();

void funktion()
{
cout << "Du springer fram mot den stora ekdrren och kanckar p.Några gonblick senare hrs en dov rst Vem dr?";
cout << "efter en kort betänketid bestämmer du dig för att svara";
cin >> name;
return;
}

int main()
{
    funktion();
    cout << "ditt namn er:" << name << endl; // *SE NOT
return 0;
}


* här funderar jag lite, cout << "ditt namn er:" << name <<; funkar inte, men om man sätter dit "endl" så går det. knasigt...

Independence metod gillar Borland inte lika mycket och vägrar kompliera med följande argument:
"Undefined symbol 'name' in function main()"


-------------------------
Allt som står i fältet ovan är totalt befriat från upphovsrätt, intelligens och ofta mening. Däremot är texten sällan fri från stavfel.



Independence 10:38 - 18:e Augusti 2005 | Post #9
Administratör
Inlägg: 1800


Skicka PM
Bredberg: Kolla på koden som ozamosi skrev under sin funktion, du behöver något liknande i din main-funktion. Såhär t ex:

  1.  
  2.  
  3. int main()
  4. {
  5. string name_i_main; // Detta är Inte samma variabel som i funktionen
  6. name_i_main = funktion();
  7. cout << name_i_main << endl;
  8. return 0;
  9. }
  10.  


(Ville bara vara lite övertydlig med att variabeln name i funktionen inte är densamma som name_i_main-variabeln.)


Angående endl så är det bra att ha där pga buffrar och sådant har jag för mig, du behöver dock inte ha det. Detta skulle t ex fungera:
cout << "ditt namn er:" << name;

Problemet är alltså att du skrev ett extra par <-tecken som inte ska vara där.

-------------------------

Vi är riddarna som säger fiskbulle!



Senast redigerad 11:21 - 18:e Augusti 2005


Bredberg 11:00 - 18:e Augusti 2005 | Post #10
Medlem
Inlägg: 25


Skicka PM
Ok, nu fattar jag. Stort tack för hjälpen.
Där fick ni dessutom ett litet smakprov mitt kommande uber-text-äventyr Smiley

BTW, hur kan jag avsluta programmet innan main koden är klar?



-------------------------
Allt som står i fältet ovan är totalt befriat från upphovsrätt, intelligens och ofta mening. Däremot är texten sällan fri från stavfel.



Independence 11:21 - 18:e Augusti 2005 | Post #11
Administratör
Inlägg: 1800


Skicka PM
Du kan avsluta programmet genom att skriva return 0; i main om du vill. Man ska även avslutas med return 0; vilket jag missade i mitt exempel.

-------------------------

Vi är riddarna som säger fiskbulle!





Celeron 17:36 - 18:e Augusti 2005 | Post #12
Medlem
Inlägg: 418


Skicka PM
Du behöver inte ha return i en funktion som är void. Du ska inte ens ha det.

-------------------------
Det viktigaste är att ha roligt! Har ny hemsida: http://www.freewebs.com/cpperik/



Sidor: 1

Forum huvudsida -> Programmering -> C++ frågestund
Atom feed

Du får inte posta i den här tråden | Till toppen