Sida 2 av 2
Re: Rekomendera C++ compiler
Postat: 21 apr 2010, 17:35
av andy
kopierade texten från forumet:
#include <iostream>
using namespace std;
int main(){
cout << "hello" << endl;
return 0;
}
klistrade in i abi word word processor
sparade som hello.C
öppnade terminalen
skrev:
g++ hello.C -o hell
svaret jag får är:
hello.C:23: fel: överblivet "#" i program
hello.C:1: fel: expected unqualified-id before "<" token
hello.C:23: fel: expected constructor, destructor, or type conversion before "&" token
hello.C:23: fel: expected unqualified-id before "<" token
hello.C:24: fel: expected unqualified-id before "<" token
hello.C:28: fel: expected unqualified-id before "<" token
Re: Rekomendera C++ compiler
Postat: 21 apr 2010, 17:43
av Konservburk
Du har nog drabbats av den mystiska kopieringsbuggen. Jag har inte kommit fram till varför vissa råkar ut för den, men inte andra. Hur som helst så händer det ibland att det som kopieras från forumet får 4 mellanrum i början av varje rad. Blev det så för dig så kommer inte koden att fungera. Du måste plocka bort mellanrummen först.
Re: Rekomendera C++ compiler
Postat: 21 apr 2010, 17:50
av cthulhu
Men mellanrum skall väl inte spela någon roll?
Och varför inte använda gedit istället? Då får du syntax-färgning av texten.
I alla fall om du byter namn till litet "c", dvs helloworld.c
vet inte men använder du g++ kanske man skall kalla filen för *.cpp.
och använda gcc för vanlig "C"-programmering, ("fil.c")
Re: Rekomendera C++ compiler
Postat: 21 apr 2010, 17:59
av Konservburk
cthulhu skrev:Men mellanrum skall väl inte spela någon roll?
Det kan man tycka. Det enda jag vet är att folk då och då inte får kod som de kopierat från forumet att fungera. När vi kommer fram till vad felet är brukar de beskriva det som att det finns konstiga mellanrum i början av varje rad. Jag har aldrig sett det själv och har ingen aning om ifall det är vanliga mellanrum eller något annat som bara ser ut som mellanrum.
Re: Rekomendera C++ compiler
Postat: 21 apr 2010, 19:00
av andy
nu har jag testat att skriva koden själv, använda .cpp
skriva g++ helloworld -o hell.exe
sedan ./hell.exe
får samma svar som tidigare.
börjar undra om -0 är ett o som i "class olson"
Re: Rekomendera C++ compiler
Postat: 21 apr 2010, 20:27
av m!rage
-o är bokstaven o och inte siffran noll. Så det beror på något annat.
Rad 23 finns väl inte? Så hur kan det finnas fel där? Nåt inkluderat som strular? Du har kanske inte libc6 installerat?
EDIT: Hallå du menar väl inte att du använde -0 (noll) vid kompileringen? Isf har felet där
Re: Rekomendera C++ compiler
Postat: 22 apr 2010, 07:22
av andy
använde inte nolla,
gjorde samma procedur med gedit,
istället för abiword,
och det funkar utmärkt.
tänkte bara fråga om någon vet hur man i c++
skapar en fil som jag kan köra,
utan att gå in på terminal och skriva filens namn.
en fil som man klickar och programet körs
Re: Rekomendera C++ compiler
Postat: 22 apr 2010, 10:09
av cthulhu
tja, det där är nog inte en "c++" fråga.
Gör du den körbar med chmod, och inte läs/skrivbar, så har väl inte nautilus något annat val än att köra den när du klickar på den binära filen. eller?
lägg den i /usr/bin eller /usr/local/bin för att få den "tillgänglig" från alla kataloger utan att behöva köra "./fil"
Re: Rekomendera C++ compiler
Postat: 22 apr 2010, 21:27
av m!rage
Kommer inte fungera eftersom det är ett kommandoradsprogram, så det måste alltså köras från kommandoraden. Alternativt kanske du kan starta det mha Alt+F2 och skriva
Sitter i XP nu så kan inte testa själv
Re: Rekomendera C++ compiler
Postat: 22 apr 2010, 22:02
av mcNisse
Låt bli att skräpa ner i std namnrymden.
Här är vad man kan skriva istället.
Edit: Jag har fel. Det är inte std som skräpas ner. Utan default namnrymden. (Den utan namnespace)
Re: Rekomendera C++ compiler
Postat: 23 apr 2010, 07:15
av Pinky
Utanför ämnet: Flyttar denna tråd till en mer lämplig tavla.
Mvh
Martin
Re: Rekomendera C++ compiler
Postat: 23 apr 2010, 20:44
av m!rage
mcNisse skrev:Låt bli att skräpa ner i std namnrymden.
...
Varför inte använda using namespace std?
Re: Rekomendera C++ compiler
Postat: 23 apr 2010, 22:14
av mcNisse
Därför att du tar in mer symboler än vad du behöver.
Ta detta exempel:
Kod: Markera allt
using <sstream>
using namespace std;
// someoneElses.cpp/h
#include "myHeader.h"
class stringstream { // uh oh
};
Det är ju ett ganska enkelt exempel. Poängen är egentligen att du inte vill skräpa ner ditt namespace med allt från std (inte som jag skrev i förra posten skräpa ner std). Det är ganska enkelt att deklarera en variabel/class som kolliderar med något i namnrymden som du importerar. Dessutom tycker jag att koden blir svårare att läsa när man importerar. Det är mycket tydligare när man ser varifrån symborerna tas.
I värsta fall om du importerar två namnrymder så kan symboler kollidera.
Re: Rekomendera C++ compiler
Postat: 29 apr 2010, 06:49
av Substrata
Det viktigaste är att inte exportera dessa symboler (genom headerfiler). Använder du 'include std' i en cpp-fil så är det dock ett lokalt direktiv.