C++ med xcode efter uppdatering

Trädvy Permalänk
Medlem
Registrerad
Mar 2017

C++ med xcode efter uppdatering

Hej,

Någon som har koll på varför xcode inte kompilerar?

Om jag gör en enkel utskrift som nedan så måste jag lägga till << endl eller \n efter utrop.

#include <iostream>

using namespace std;

int main ()
{
cout << "hej" << endl;
}

eller så här funkar med

#include <iostream>

using namespace std;

int main ()
{
cout << "hej\n";
}

Har suttit ett antal timmar med detta ute att förstå mig på det.
Det skumma är att om jag öppnar ett gammalt program så funkar det hur bra som helst. Även om jag kopierar ett gammalt program och klistrar in det i ett nytt projekt så fungerar det.
Det som händer när det inte fungerar är att rutan som utskriften hamnar i, åker upp men att det som skall stå, typ "hej" bara visas en tiondels sekund eller så. Senast igår var allt som det skulle, men efter uppdatering hände detta. Kan vara jag som råkat komma åt någon inställning?

Trädvy Permalänk
Medlem
Plats
Sundsvall
Registrerad
Feb 2008

Hmm... vad händer om du lägger till return 0; i slutet av main-loopen?

Trädvy Permalänk
Medlem
Registrerad
Mar 2013

Efter cout-anropet har programmet kört färdigt, därför stängs terminalen nästan direkt efter du kör programmet. Testa att lägga in "cin.get();" på raden efter utskriften; programmet kommer skriva ut "hej" och sedan vänta på input från användaren innan den fortsätter vidare.

MSI z170a SLI-Plus - i7 6700K @ 4,6GHz - MSI GTX 770 Gaming 4GB- 32GB HyperX Fury DDR4 2666Mhz - Fractal Design arc midi r2 - Kelvin S36

Trädvy Permalänk
Medlem
Registrerad
Mar 2017

@linsjb: Hej,

Det är givetvis med, men det skall fungera utan det med.
Helskumt är det!

Trädvy Permalänk
Medlem
Registrerad
Mar 2017

@mortelsson:

Jag har prövat sin.get(); med. det blir samma resultat.
själva rutan där nere som utskriften skall komma i, åker upp som vanligt bara att "hej" visas e tiondels sekund eller så!

Trädvy Permalänk
Medlem
Registrerad
Mar 2017

Så här kan jag visa mer tydligt.

#include <iostream>

using namespace std;

int main ()
{
cout << "hej" << endl;

cout << "hallå\n";

cout << "hejsan";

cin.get();
return 0;
}

Det som står i rutan när jag kompilerat är endast:

hej
hallå

hejsan blir aldrig utskrivet.

Trädvy Permalänk
Datavetare
Plats
Stockholm
Registrerad
Jun 2011

Känns nästan lite som en bug, "hejsan" borde tvingas ut när du väntar på input i cin.get().

I normalfallet är det ändå så att terminalutskrifter är buffrade per rad, endl och "\n" ger inte bara radbrytning utan de flushar också bufferten så utskriften tvingas ut på terminalen.

Testa att ändra ditt exempel så här

#include <iostream> using namespace std; int main () { cout << "hej" << endl; cout << "hallå\n"; cout << "hejsan" << flush; cin.get(); return 0; }

Det borde tvinga ut utskriften av "hejsan".

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer

Trädvy Permalänk
Medlem
Registrerad
Mar 2017

@Yoshman: Helt stört, det funkade inte heller. Blir helt jävla knäckt alltså, har inlämning idag kl 13 och har inte ens hunnit starta med uppgiften.
Jag skrev precis till xcode med så får väl hoppas på svar där.

Sedan har jag testat med ett annat program Eclipse men det gick inte installera för att det var en äldre version.
Finns det något mer man kan använda? Börjar bli lite desperat nu!

Trädvy Permalänk
Medlem
Registrerad
Mar 2013

@apan82ful: Har du kompilerat om koden efter du ändrat den? Låter nästan som om du kanske glömt att göra det; att programmet som körs i själva verket är gammal kod.

MSI z170a SLI-Plus - i7 6700K @ 4,6GHz - MSI GTX 770 Gaming 4GB- 32GB HyperX Fury DDR4 2666Mhz - Fractal Design arc midi r2 - Kelvin S36

Trädvy Permalänk
Medlem
Registrerad
Mar 2017

@mortelsson: Jag trycker som jag gjort tidigare på play knappen för att kompilera. Det finns inget mer än play. Ingen build knapp som på
t ex. code blocks. Vad mer kan man göra? Jag har installerat om programmet och så men det är samma visa.

Trädvy Permalänk
Medlem
Registrerad
Mar 2013

@apan82ful:
Har du provat att kompilera manuellt i terminalen och sedan köra?
g++ main.cpp -o main
./main

MSI z170a SLI-Plus - i7 6700K @ 4,6GHz - MSI GTX 770 Gaming 4GB- 32GB HyperX Fury DDR4 2666Mhz - Fractal Design arc midi r2 - Kelvin S36

Trädvy Permalänk
Medlem
Registrerad
Mar 2017

@mortelsson: Tack för råd, Jag har varit inne på forumet för xcode och läst. Det är många som har samma problem och det verkar som det ligger i senaste uppdatering. Jag håller på att ladda ner tidigare version för att testa. det var fler som gjorde det och efter det fungerar det.