Som besökare på Hamsterpaj samtycker du till användandet av s.k. cookies för att förbättra din upplevelse hos oss. Jag förstår, ta bort denna ruta!
Annons

Hjälp från någon som kan c++

Skapad av jojjjocraft, 2014-03-04 13:23 i Webbutveckling & Programmering

10 240
23 inlägg
1 poäng
jojjjocraft
Visningsbild
P 19 Veteran 22 inlägg
0
Jag har skrivit ett väldigt enkelt program i microsoft visual c++... När jag kör det så kommer det upp en ruta där det står:
Tjenare skriv
2 stycken tal:
.. Då skriver jag 2 tal (t.ex. 2 och 4) och sen trycker jag enter...
Då körs resten av koden, men programmet lägger av för snabbt för att jag ska hinna se vad det står på resten av texten.. Så jag undrar om det finns någon kod för att hålla programmet igång även när koden är färdig.. (Eller det är väl klart att det gör men jag vet inte om det...
Här är koden jag skrev:

#include <iostream>
using namespace std;


int Add(int x, int y)
{


cout << "Inne i Add(), har tagit emot " << x << " och " << y << "
";
return (x + y);
}

int main()
{
cout << " Tjenare skriv
";
int a, b, c;
cout << "2 stycken tal: ";
cin >> a;
cin >> b;
cout << "
Anropar Add()
";
c = Add(a, b);
cout << "
Tillbaka i main().
";
cout << "c angavs till " << c;
cout << "
Avslutar...

";
return 0;
}

fuck life...

Är reklamen ivägen? Logga in eller registrera dig så försvinner den!

Tvillingen
Visningsbild
P 24 Örebro Gift administratör 3 116 inlägg
0
Det finns ett antal lösningar på problemet.

http://stackoverflow.com/questions/2529617/how-to-stop-c-console-application-from-exiting-immediately/2529936

Ett starkt tips när man börjar programmera är att försöka söka sig till så mycket svar själv som möjligt. Dokumentation för språket och sökmotor är alltid bra hjälpmedel.

Jag är ond!

jojjjocraft
Visningsbild
P 19 Veteran 22 inlägg
Trådskapare
0

Svar till Tvillingen [Gå till post]:
Tack för den länken :D.. Den kan nog hjälpa mig en hel del! :D

fuck life...

LIDLJERRY
Visningsbild
P 20 Kändis 1 374 inlägg
0
Lägg till detta i main funktionen
cin.clear();
cin.ignore(255, '
');
cin.get();

Använd >ALDRIG< system(“pause”)

Finns egentligen många sätt man kan göra detta, men använd aldrig system("pause")

Ingen status

Lobax
Visningsbild
P 23 Kista Ordningsvakt 5 448 inlägg
1
Svar till jojjjocraft [Gå till post]:
Din IDE har ställt in så att terminalrutan stängs ned när programmet har kört klart. Finns säkert någon inställning som gör så att du kan ändra detta beteende, går nog att googla fram hur man gör i just din IDE.

Annars så kan du lägga till ett tomt immat på ett tecken, typ getchar(), på slutet, så att du måste trycka på något innan programmet och därmed terminalen stängs.




Tillägg av Lobax 2014-03-04 16:26

På en helt orelaterad punkt - indentera gärna din kod. Det är mycket enklare att förstå hur nästlade funktioner och if-satser hänger ihop då. Det kan bli ett stort problem senare när du håller på med stora projekt annars.

Jämför:
Ett stycke C#-kod:

if (nånting) {
if (någonting annat){
//Gör något
}
else {
//Gör något helt annat
}
}


Med:
Ett stycke C#-kod:

if (nånting) {
if (någonting annat){
//Gör något
}
else {
//Gör något helt annat
}


jojjjocraft
Visningsbild
P 19 Veteran 22 inlägg
Trådskapare
0

Svar till LIDLJERRY [Gå till post]:
Använder just nu system ("pause")..
Varför ska jag aldrig göra det?

fuck life...

Splux
Visningsbild
P 23 Västerås Hjälte 3 131 inlägg
0
Svar till jojjjocraft [Gå till post]:
http://www.cplusplus.com/forum/articles/11153/

Lite nyttig information om just varför du inte ska använda system().

edit; http://stackoverflow.com/a/1107717 svarar rätt specifikt om just system("pause")

Ingen status

ATinyGod
Visningsbild
P 32 Veteran 1 inlägg
0
system() är operativsystemsberoende. system("pause") behöver nödvändigtvis inte fungera på ett annat OS. Det kanske inte är något du behöver tänka på, men det är ändå bra att undvika system("pause")

För att slippa allt detta (om du nu inte vill ha det) kan du i Visual Studio trycka CTRL + F5 så kommer rutan stanna uppe tills du trycker på någon knapp. Detta händer när programmet ska stängas ner så hur det funkar i icke-kommandotolken program vet jag inte.

Om du inte orkar trycka CTRL+F5 kan du sätta in breakpoints vid raden efter return 0; då kommer Visual Studio skrika till och stanna programmet vid den punkten.

Jag hette tidigare TinyGod

hazardous
Visningsbild
P 86 Skövde Hjälte 775 inlägg
0
Hej.

Jag tänkte skriva lite kod (men vet inte hur) som går ut på att användaren skriver en siffra eller ett ord och så dyker en annan siffra eller ett annat ord upp. Detta bestäms alltså av programmeraren när denne skriver koden. Om användaren skriver siffran 1 så kanske programmeraren har bestämt att siffran 2 dyker upp. Hoppas det inte blev en flummig beskrivning.
Någon som vet hur man gör?

Och så trycker vi spara.

Sagan
Visningsbild
P 26 Legend 448 inlägg
0

Svar till hazardous [Gå till post]:
#include <iostream>
using namespace std;

int main ()
{
int i;
cout << "Skriv in en siffra: ";
cin >> i;

//Här skriver du något kul som ska göras med siffran, jag ger ett exempel
i++;

//Här skrivs det nya värdet ut
cout << "Det nya värdet är: " << i;
return 0;
}

Ingen status

hazardous
Visningsbild
P 86 Skövde Hjälte 775 inlägg
0

Svar till Sagan [Gå till post]:

Vet inte om det är åt rätt håll. När jag kompilerar källkoden står det i kompilatorlådan nere i c++-programmet:
[Error] 'cin' was not declared in this scope

Lägger till detta i källkoden:
#include <iostream>
using namespace std;

Då skapas en .exe-fil.
När jag öppnar .exe-filen står det i dialogrutan/filen att jag ska skriva in en siffra.
Jag skriver in valfri siffra och trycker enter.
Dialogrutan försvinner så snabbt jag trycker enter.

Jag tänkte mer att jag som programmerare ska kunna välja vilket tal som ska dyka upp, beroende på vilket tal användaren skriver. Om användaren skriver talet 1 vill jag att talet 50 dyker upp i dialogrutan. Om användaren skriver 2 vill jag att 77 ska dyka upp.


Och så trycker vi spara.

Sagan
Visningsbild
P 26 Legend 448 inlägg
0

Svar till hazardous [Gå till post]:
Om du kör windows kan du lägga till

system("pause");

innan return 0;

Du kan ju göra så att vilket nummer som helst visas med en enkel if-sats till exempel:

if(i == 1){
i = 50;
} else if(i == 2){
i = 77;
}

osv. Skrivs där jag kommenterat att du ska göra något som ändrar siffran.

Ingen status

hazardous
Visningsbild
P 86 Skövde Hjälte 775 inlägg
0
Svar till Sagan [Gå till post]:

Menade du så här?

Lite kod:
Visa spoiler
int main ()
{
int i;
if(i == 1){
i = 50;
} else if(i == 2){
i = 77;
}
cout << "Skriv in en siffra: ";
cin >> i;

//Här skriver du något kul som ska göras med siffran, jag ger ett exempel
i++;

//Här skrivs det nya värdet ut
cout << "Det nya värdet är: " << i;
system("pause");
return 0;
}



Bild, imghack verkar ha försvunnit, men det gick att lösa med shutterfly. Lägg märke till kommentarerna i Kompilator-fältet:
https://mjau.shutterfly.com/pictures/9

Och så trycker vi spara.

Sagan
Visningsbild
P 26 Legend 448 inlägg
0

Svar till hazardous [Gå till post]:
Visa spoiler
int main ()
{
int i;

cout << "Skriv in en siffra: ";
cin >> i;

//Här skriver du något kul som ska göras med siffran, jag ger ett exempel
if(i == 1){
i = 50;
} else if(i == 2){
i = 77;
}

//Här skrivs det nya värdet ut
cout << "Det nya värdet är: " << i;
system("pause");
return 0;
}


Såhär typ, så att du kollar i's värde efter att du fått in värdet och innan du skriver ut det nya värdet

Ingen status

hazardous
Visningsbild
P 86 Skövde Hjälte 775 inlägg
0
Svar till Sagan [Gå till post]:

Koden i spoilern funkar att kompilera. Koden innehåller ingen system("pause");. Men när jag öppnar programmet, skriver in en 1:a följt av Enter så skriver den inte ut talet 50. Programmet försvinner så snabbt jag klickar på Enter.

Med system("pause"); så går det inte att kompilera koden. Då får jag meddelandet [Error] 'system' was not declared in this scope.

Här är koden som går att kompilera:
Visa spoiler

#include <iostream>
using namespace std;
int main ()
{
int i;

cout << "Skriv in en siffra: ";
cin >> i;

//Här skriver du något kul som ska göras med siffran, jag ger ett exempel
if(i == 1){
i = 50;
} else if(i == 2){
i = 77;
}

//Här skrivs det nya värdet ut
cout << "Det nya värdet är: " << i;
system("pause");
return 0;
}



Och så trycker vi spara.

Sagan
Visningsbild
P 26 Legend 448 inlägg
0
Svar till hazardous [Gå till post]:
Testa att lägga till #include <cstdlib> på en ny rad efter #include <iostream>

Sen lägger du till system("pause"); igen (inte på samma ställe som #include <cstdlib>, där den var innan)

Ingen status

Bjornez
Visningsbild
P 22 Legend 335 inlägg
0

Svar till hazardous [Gå till post]:
http://ideone.com/J9RsnL

Din kod funkar utmärkt, vad för compiler använder du på datorn ?

Are you looking for a nerd? Then you have to find me

hazardous
Visningsbild
P 86 Skövde Hjälte 775 inlägg
0
Svar till Sagan [Gå till post]:

Testa att lägga till #include <cstdlib> på en ny rad efter #include <iostream>

Sen lägger du till system("pause"); igen (inte på samma ställe som #include <cstdlib>, där den var innan)


Det funkar :)
Så här ser det ut:
https://mjau.shutterfly.com/pictures/10

Hur får jag bort texten Tryck ned valfri tangent för att fortsätta...

När man sedan trycker på valfri knapp så försvinner dialogrutan.


Svar till Bjornez [Gå till post]:

Använder Dev-C++




Tillägg av hazardous 2014-12-26 22:16

Sagan4365630:
Lägger in en spoiler på koden:

Visa spoiler

#include <cstdlib>
#include <iostream>
using namespace std;
int main ()
{
int i;

cout << "Skriv in en siffra: ";
cin >> i;

//Här skriver du något kul som ska göras med siffran, jag ger ett exempel
if(i == 1){
i = 50;
} else if(i == 2){
i = 77;
}

//Här skrivs det nya värdet ut
cout << "Det nya värdet är: " << i;
system("pause");
return 0;
}




Och så trycker vi spara.

Bjornez
Visningsbild
P 22 Legend 335 inlägg
0

Svar till hazardous [Gå till post]:
http://www.microsoft.com/en-us/download/details.aspx?id=30679

Använd visual c++ istället, dev c++ är ett gammalt program och saknar många bibliotek samt standard saker. Så du får/kommer få errors du inte borde få.

Are you looking for a nerd? Then you have to find me

hazardous
Visningsbild
P 86 Skövde Hjälte 775 inlägg
0
Svar till Bjornez [Gå till post]:

Jaha, det visste jag inte! Ska kika på visual c++. Vet inte ens varför jag har kvar dev c++. Har försök mig på programmering periodvis, och då har det programmet legat kvar i datorn de gånger jag inte har kodat.
:)


Och så trycker vi spara.

Sagan
Visningsbild
P 26 Legend 448 inlägg
0

Svar till hazardous [Gå till post]:
Det löser sig ska du se, det finns mycket resurser på internet där du kan lära dig grunderna i pedagogiska steg. Och jag rekommenderar att du börjar från början istället för att försöka dig på olika programidéer direkt, hur frestande det än kan vara ;)

Ingen status

kejsaren
Visningsbild
Veteran 4 inlägg
0

Svar till jojjjocraft [Gå till post]:
Det man gör normalt här är att kompilera i IDE:n och köra programmet i en separat konsolruta. Gör så istället för att lägga tid på nåt onödigt.

Jag editerar i vim, make:ar från vim och kör manuellt i konsoll.

hazardous
Visningsbild
P 86 Skövde Hjälte 775 inlägg
0
Svar till Sagan [Gå till post]:

Visst finns det resurser på nätet om programmering, det finns en hel uppsjö! Det är det som får en att känna sig vilse. Men på nätet är det enkelt att skapa en sida, kopiera information från flera andra sidor och sätta det på sin egen hemsida. Det finns få hemsidor med pedagogiska steg. Webdesignskolan och w3schools är två hemsidor som jag känner till. :)


Och så trycker vi spara.


Forum » Datorer & IT » Webbutveckling & Programmering » Hjälp från någon som kan c++

Ansvariga ordningsvakter:

Användare som läser i den här tråden just nu

1 utloggad

Skriv ett nytt inlägg

Hej! Innan du skriver om ett potentiellt problem så vill vi påminna dig om att du faktiskt inte är ensam. Du är inte onormal och världen kommer inte att gå under, vi lovar! Så slappna av och gilla livet i några minuter - känns det fortfarande hemskt? Skriv gärna ner dina tankar och frågor, vi älskar att hjälpa just dig!

Den här tråden är äldre än Rojks drömtjej!

Det senaste inlägget i den här tråden skrevs för över tre månader sedan. Är du säker på att du vill återuppliva diskussionen? Har du något vettigt att tillföra eller passar din fråga i en ny tråd? Onödiga återupplivningar kommer att låsas så tänk efter en extra gång!

Hjälp

Det här är en hjälpruta

Här får du korta tips och förklaringar om forumet. Välj kapitel i rullningslisten här ovanför.

Rutan uppdateras automagiskt

När du använder funktioner i forumet så visas bra tips här.


Annons
Annons
Annons