Permalänk
Medlem

C++ A: Nybörjarfel

Hej hej.

Har Programmering som inviduellt val och första lektionen får vi reda på att vi ska göra kursen hemma för att vi inte har det programmet man behöver på skoldatorerna. Så det är väldigt svårt att få hjälp. Har precis satt igång och får direkt fel.

Vi har fått ett enkelt program som vi ska skriva in och sedan köra. Men det går inte att köra det. http://data.fuskbugg.se/skalman02/cad49d02_c%2B%2B%20fel.png Någon som kan säga vad jag har gjort fel?
Koden som står där är dirket tagen ur våran bok så förstår inte hur det kan bli fel.

Vi ska sedan skriva om programmet så att man istället ska addera två tal. Hur gör man det?

Skulle vara väldigt schysst ifall någon har tid att hjälpa till!

Permalänk
Medlem

Nu är jag inte helt säker på det här, men testa.
Har för mig att du måste lägga in: using namespace std;
efter #include när du använder VS.

Edit: För att addera dom 2 talen sen byter du ut * tecknet i produkt=tal1*tal2 till +. Så det blir produkt=tal1+tal2

Visa signatur
Permalänk
Medlem

Får endå errors: warning C4627: '#include <iostream>': skipped when looking for precompiled header use
1> Add directive to 'stdafx.h' or rebuild precompiled header.

fatal error C1010: unexpected end of file while looking for precompiled header. Did you forget to add '#include "stdafx.h"' to your source?

Permalänk
Medlem

Hmm..
Provade just.
Vet inte om det finns ett "lättare" sätt att få igång ett projekt i VS men med den här koden funkar det:

#include "stdafx.h" #include <cstdlib> #include <iostream> using namespace std; int _tmain(int argc, _TCHAR* argv[]) { system("PAUSE"); }

System("PAUSE"); är där för att pausa programmet, annars stänger det ner direkt det startar typ.

Visa signatur
Permalänk
Hedersmedlem
Skrivet av Bunkz:

Får endå errors: warning C4627: '#include <iostream>': skipped when looking for precompiled header use
1> Add directive to 'stdafx.h' or rebuild precompiled header.

fatal error C1010: unexpected end of file while looking for precompiled header. Did you forget to add '#include "stdafx.h"' to your source?

Se till att

#inlcude <iostream>

står under

#include "stdafx.h"

(eller kryssa ur "Precompiled header" när du skapar projektet).

Permalänk
Medlem
Skrivet av Bunkz:

Har Programmering som inviduellt val och första lektionen får vi reda på att vi ska göra kursen hemma för att vi inte har det programmet man behöver på skoldatorerna. Så det är väldigt svårt att få hjälp. Har precis satt igång och får direkt fel.

Vi ska sedan skriva om programmet så att man istället ska addera två tal. Hur gör man det?

Extremt dåligt planerat av läraren att ni saknar rätt mjukvara på skoldatorerna. Finns ju massor med bra gratis programvara för att kompilera C++ program, så det borde inte vara något problem för läraren i samordning med IT-avdelningen att ordna.

För att svara på fråga 2. Tänk till några sekunder. Om du istället för att multiplicera två tal vill addera dom, vad är skillnaden?

Permalänk
Medlem
Skrivet av Elgot:

Se till att

#inlcude <iostream>

står under

#include "stdafx.h"

(eller kryssa ur "Precompiled header" när du skapar projektet).

Är inte så bäst på programmering men är ganska säker att du inte behöver dom där bibloteken för det han försöker göra, han har glömt "std::" eller "using namespace std;"

Vill du inte andvända "using namespace std;"vilket du bör vänja dig att inte göra på engång vad jag har läst för det blir svårare att vänja bort det senare när du väl är van kan du skriva tex. std::cout & std::cin. Anledningen till att du inte bör andvända "using namespace std;" är för att när du börjar skriva mer advancerat kod kan det krångla på nått vänster och det kan bli en jäkla massa extra jobb. Nån får gärna konfirmera detta och förklara bättre om det stämmer, är nybörjar jag också som sagt. Detta är vad jag läst i forumtrådar osv. ^^

#include <iostream> using namespace std; int main() { int tal1; int tal2; cout << "Mata in tal 1: "; cin >> tal1; cout << "Mata in tal 2: "; cin >> tal2; cout << "Summan blir: " << tal1 * tal2 << endl; system("PAUSE"); }

Fungerar hur fint som helst för mig utan stdafx.h ;o
Men som sagt, jag är också nybörjare och kan ha fel. Dock la jag in inmatning i min kod för det är lite roligare än fasta nummer. ^^
Det jag gjorde var att jag skapade ett nytt projekt, klicka nästa, klicka i "Empty Project". Sen högerklicka på Source Files i din Solution Explorer, Add, New Item, lägg till en .cpp fil och döp den till vad du nu vill att den ska heta. (Döpte min till main för det är väll ganska standard.) Tänkte bara påpeka det eftersom jag vet inte om du andvänder ett sån "färdig mall" som jag aldrig pillat med, har bara kört empty projects.

Edit: DOCK såg jag nu att du andvänder Visual C++ 2008, är ny på det här jag också så har inte en aning hur det påverkar det hela eftersom jag kör 2010.

Visa signatur

AMD Ryzen 9 3900x - MSI Tomahawk x570 Wi-Fi - 32GB Corsair Vengence @ 3200Mhz - MSI GeForce GTX 1070 8GB Gaming X - Corsair Hydro H100x - Några HDD's

Permalänk
Hedersmedlem
Skrivet av Tott3:

Edit: DOCK såg jag nu att du andvänder Visual C++ 2008, är ny på det här jag också så har inte en aning hur det påverkar det hela eftersom jag kör 2010.

Det har fungerat likadant i visual studio sedan urminnes tider tror jag: om man använder guiden för att skapa ett nytt "Win32 Console Application"-projekt kommer man behöva stdafx.h/stdafx.cpp om man inte kryssar ur rutan "Precompiled header" (ok, det går även att ändra sig i efterhand under "Configuration Properties --> C/C++ --> Precompiled Headers"). Det finns också fördelar med systemet (inkludera filer i stdafx.h istället för i alla andra filer), men det kan vara onödigt oöverskådligt för små projekt.

Permalänk
Skrivet av Elgot:

Det har fungerat likadant i visual studio sedan urminnes tider tror jag: om man använder guiden för att skapa ett nytt "Win32 Console Application"-projekt kommer man behöva stdafx.h/stdafx.cpp om man inte kryssar ur rutan "Precompiled header" (ok, det går även att ändra sig i efterhand under "Configuration Properties --> C/C++ --> Precompiled Headers"). Det finns också fördelar med systemet (inkludera filer i stdafx.h istället för i alla andra filer), men det kan vara onödigt oöverskådligt för små projekt.

Helt korrekt!

Bunkz: Ett tips är att göra ett tomt projekt för att sedan skriva in all kod. Precompiled header behövs inte för dina ändamål.