C i Project builder

Tråden skapades och har fått 11 svar. Det senaste inlägget skrevs .
1
  • Medlem
  • 2003-01-20 18:52

Jag är total nybörjare, och försöker lära mig C. I en tutorial finns det här exemplet med, men det funkar inte när jag kompilerar det i Project Builder (Standard Tool).

#include <stdio.h>
main()
{
int a,b,c;
printf("
The first number is ");
scanf("%d",&a);
printf("The second number is ");
scanf("%d",&b);
c=a+b;
printf("The answer is %d
",c);
}

Inte ens texten "The first number is" kommer upp och jag undrar om någon vet vad det är för fel?

Klicka några gånger på enter så kommer det att hända saker, men inte det som ska hända.

Jag skulle skriva programmet så hära istället. Det funkar bättre då.

#include [i]
int main()
{
int a,b,c;
cout << "The first number is" << endl;
cin >> a;
cout << "The second number is" << endl;
cin >> b;
c=a+b;
cout << "The answer is" << endl << c;
}

Jag kan förklara om du har några frågetecken kring koden.

  • Oregistrerad
  • 2003-01-20 19:42

Fast då är det förstås C++ och inte C...

Det är sant. Jag borde ha reagerat direkt på att det var bara C.

Så skriver man i C++ i alla fall.

Citat:

citera:Skapades ursprungligen av: Zirth:
Jag är total nybörjare, och försöker lära mig C. I en tutorial finns det här exemplet med, men det funkar inte när jag kompilerar det i Project Builder (Standard Tool).

#include <stdio.h>
main()
{
int a,b,c;
printf("
The first number is ");
scanf("%d",&a);
printf("The second number is ");
scanf("%d",&b);
c=a+b;
printf("The answer is %d
",c);
}

Inte ens texten "The first number is" kommer upp och jag undrar om någon vet vad det är för fel?

Uhm, lyckas du kompilera programmet över huvud taget? Vad får du för felmeddelanden?

Ciryon

Det fungerar utmärkt för mig(testade med CodeWarrior)

  • Medlem
  • 2003-01-20 21:50

Zirth,

Det fungerar men consolen i Project Builder tilllåter av någon anledning inte inmatningar. Om ProjectBuiler säger att kompileringen gått igenom utan problem så testa att exekvera programmet från terminalen. I mitt fall sparade jag Projektet i ~/number och den exekverbara filen hamnar då i ~/number/build så följande genereras från Terminalen.

Citat:

kod:<pre style="font-size:x-small; font-family: monospace;">
[Globens-dator:~/number/build] uhellstr% ./number

The first number is 12
The second number is 12
The answer is 24
[Globens-dator:~/number/build] uhellstr% </pre>

consolen däremot visar bara ett blankt fönster....

/Ulf

  • Medlem
  • 2003-01-20 21:53

Hmm verkar som det var för att jag inte var i I/O läge som det inte funkade... Förresten varför skriver vissa int main() istället för bara main? (har sett båda varianterna i olika tutorials...

Den tutorial jag använder nu är;
http://www.le.ac.uk/cc/iss/tutorials/cprog/cccc.html

Jag har som mål att lära mig ObjectC/Cocoa och det verkar som de flesta säger att man bör lära sig Ansi C först så det är därför jag gör det. Om någon har några råd/tips så skriv gärna ett par rader...
tack för hjälpen i varje fall!

  • Medlem
  • 2003-01-20 22:13

Zirth >
Bra att det löste sig, I/O läge ? Hänger jag inte med på ?? Har jag missat någon inställning i Project Builder ???

När det gäller det där med inte framför main(). Allt i C räknas som funktioner. Dvs egentligen finns inte begreppet procedur. En funktion ska alltid returnera något. Det korrekta sättet att deklarera en C-funktion som inte returnerar någonting är att använda void. Antar att Du får en en varning vid länkning som säger något i stil med att return type of main is not int eller liknande. Då bör koden se ut

int main() {

...
return 0;
}

Du returnerar då 0 dvs att allt är Ok sist i main funktionen och slipper varningen vid länkning. Man bör se till att jobbar bort varningarna i koden eftersom dom ibland kan förorsaka diverse sido effekter som inte är önskade.

Mvh
/Uffe

[ 20. Januari 2003, 22:13: Meddelandet ändrat av: Ulf H ]

  • Medlem
  • Göteborg
  • 2003-01-20 22:55
Citat:

citera:Skapades ursprungligen av: Zirth:
Förresten varför skriver vissa int main() istället för bara main? (har sett båda varianterna i olika tutorials...

Om du inte anger vad en funktion ska returnera så blir det int som default...

  • Medlem
  • 2003-01-20 23:02

Tackar för svaret Ulf! Det jag menar är att man kan köra programmet i Debug fönstret, genom att trycka på "Standard I/O" fliken. Men det är säkert bättre att köra i terminalen.

Visst blir det int som default men det är direkt dumt att inte deklarera main som int och ha ett retur värde för i exempelvis vissa C++ implementationer så är inte int default vilket kan leda till problem...
Men som nybörjare behöver man inte bry sig

1
Bevaka tråden