Gå til innhold

Bone's Offisielle C++ hjelpetråd


Anbefalte innlegg

Videoannonse
Annonse

Flere måter. Du kan bruke resource-filer, eller du kan lage dem manuelt. Begge deler er dog vanskelig i forhold til å bruke et annet bibliotek så du slipper å jobbe med Win32 direkte. Eksempler er GTK, Qt og det MS spesifikke MFC.

 

Er C++ et enkelt språk å programmere med i et GUI når du får taket på det?

Eller vil du anbefale andre språk til GUI programmering?

Lenke til kommentar

C++ som språk er veldig godt egnet til GUI programmering, de aller aller fleste programmer du får kjøpt til en PC er utviklet i C++.

"Problemet" til C++ er at det tar lenger tid før en fersk utvikler "får taket på det" og er produktiv kontra endel andre språk/verktøy.

Hvorfor er C++ godt egnet til GUI programmering egentlig?

Lenke til kommentar

#include <iostream>
using namespace std;


int main ()
{

int b,c;
  b = 5;


cout << "Verdien 5 er lagret i databasen, din oppgave er og legge til en verdi slik at summen blir 10 \n"; 
cin >> c;


if (c+b=10) 
	cout << "Riktig, den totale summen blir" << c << "\n";
else 
	cout << "Feil, summen blir ikke 10 \n ";


//Terminate the program 
system("pause"); 
return 0; 
}

 

Jeg går utifra feilen ligger i if (her_en_plass)

men hvorfor går ikke dette? Synes det haddde vert veldig praktisk jeg, og en alternativ metode vil være? :O

Lenke til kommentar
  • 2 uker senere...
  • 4 uker senere...
Gjest Slettet+987123897

Er det dumt å bruke æøå i variabler? Eksempelvis

int trådlengde = 10;

 

Wtf? En tråd har da vitterlig ikke en lengde?

Eller er det en variabel for en timeout på en tråd?

Jeg satt i mer enn et halvt minutt for å prøve å finne på et variabelnavn som inneholdt å, lol :) Ser nå i ettertid at det ikke var helt lurt.

 

Dersom man skal deklarere en variabel, bør man da bruke tilnærmelser av bokstavene æøå (a i stedet for å, osv) for å ikke skape krøll i koden? Man kan jo selvsagt navngi alle på engelsk, men jeg er egentlig bare nysgjerrig.

 

Eks:

 

double prisMaltid = 44.50;

double mva = prisMaltid * 0.0675;

double tips = (prisMaltid + mva) * 0.15;

double totalpris = prisMaltid + mva + tips;

 

Her har jeg skrevet prisMaltid i stedet for prisMåltid. Vil det forårsake problemer å bruke æøå i stedet?

Endret av Slettet+987123897
Lenke til kommentar
  • 2 uker senere...

i C og C++ kan man motta argumenter på denne måten:

 

int main(int argc, char *argv[])
{
 // ...
}

 

argc er et tall på hvor mange argumenter som ble gitt. Selv uten argumenter er dette minimum 1, siden første argument er navnet på programmet som ble kalt fra kommandolinja (er nok implementasjonsavhengig, men virker til å være sånn på alt av det jeg har testet i hvertfall.) argv peker på en liste av strenger, som da er argumentene. E.g.

 

// C99 eksempel
#include <stdio.h>
int main(int argc, char *argv[])
{
  for (int i = 0; i < argc; i++)
     puts(argv[i]);
}

printer ut alle argumenter.

 

Å parse kommandolinje-argument gjøres gjerne ved å iterere over alle argumenter, og sette noen flagg som senere brukes i programmet. For å hjelpe til finnes bl.a. getopt_long(), som du finner i GCC/MinGW sin libc. C/libc i seg selv har ikke noe standard for å behandle argumenter, utenom å gi deg tilgang til argv og argc.

  • Liker 1
Lenke til kommentar

Har litt problemer med å få dette til å kjøre. Jeg fikk det til i stad, men uten at jeg var helt sikker på hva jeg gjorde (så jeg angret litt) og får det ikke til å kjøre. Jeg vet bare at det er veldig lite som skal endres på:

 

//main.cpp
#include <iostream>
using namespace std;
#include "oppg1b.hpp"

int main () {
   const int length=5;
   int phoneNumbers[length] = {1, 2, 3, 4, 5};
   printArray(length, phoneNumbers);
   return 0;
}

 

Får her "undefined reference to printArray" som er forståelig da oppg1b.cpp ikke vil kompilere.

 

//oppg1b.hpp
void printArray(int length, int myArray[]);

 

//oppg1b.cpp
#include <iostream>
using namespace std;
#include "oppg1b.hpp"

void printArray(int length, int myArray[]){
   for (int i=0; i<length; i++){
       cout << myArray[i] << endl;
   }
}

 

Her får jeg "undefined reference to main".

 

EDIT: Får det til å kjøre når jeg samlet filene i et prosjekt, men jeg fikk det til å kjøre som separate filer i stad (som lå i samme mappe).

Endret av haarod
Lenke til kommentar

Du må linke filene sammen. Hvis du bruker et IDE bør dette gjøres automatisk for deg, men med GCC ville det ha sett noe sånt ut i hvertfall:

 

g++ -c -o main.o main.cpp # Kompiler main
g++ -c -o oppg1b.o oppg1b.cpp # Kompiler oppg1b
g++ -o main main.o oppg1b.o # Link begge objektfilene sammen til kjørbar fil 'main'.

 

Alternativt kan du gjøre det slik

 

g++ -o main main.cpp oppg1b.cpp # Gjør alt ovenfor med én kommando.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...