Gå til innhold

Bone's Offisielle C++ hjelpetråd


Anbefalte innlegg

  • 3 uker senere...
Videoannonse
Annonse
Skrevet
Er usikker på om dette er riktig, men hvorfor er det slik at C så godt som alltid velges framfor C++ når man programmerer innebygde systemer?

 

Min erfaring er at C++ i mye! mindre grad er støttet av kompilatorene. C++ er et veldig komplisert språk i forhold til C og dermed er det verre å lage gode komplatorer.

 

Det ble gjort (minst) et forsøk på å løse dette (Embedded C++), men det ble jo ikke noe av.

 

Det må merkes at jeg snakker om mindre innebygde systemer. I større/middels systemer så er det min erfaring at c++ det som er mest brukt

  • 2 uker senere...
Skrevet (endret)

Ok, takker for svar. Forstod det bedre nå.

Hvor store systemer snakker vi om når vi kommer til det du omtaler som middels/større innebygde systemer? :p

Endret av Arti-Ravnos
Skrevet
Ok, takker for svar. Forstod det bedre nå.

Hvor store systemer snakker vi om når vi kommer til det du omtaler som middels/større innebygde systemer? :p

 

Jeg er usikker selv dessverre og det er nok en svært glidende overgang.

 

Jeg er bare borti små/enkle mikrokontroller styre eller store/kompliserte pc styrte innebygde systemer så jeg mangler alt mellom.

Skrevet

Har så vidt begynt med OOP, men har allerede møtt et problem.

 

main.cpp

#include <QtCore/QCoreApplication>
#include <QtGui>
#include <QMainWindow>
#include <iostream>
#include <string>
#include <cstdlib>
#include "console.h"

using namespace std;
bool cmd = true;
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
console::shell();
return a.exec();
}

 

console.h:

#ifndef CONSOLE_H
#define CONSOLE_H
#include <iostream>
#include <string>
using namespace std;
class console
{
private:
	int findCommand();
public:
	int shell();
};

#endif // CONSOLE_H

console.cpp

#include "console.h"
#include <iostream>
#include <string>
#include <cstdlib>
using namespace std;



int console::shell()
{
string command;
while(cmd == true)
{
	cout << "cmd>>"
	cin>>command;


}
return EXIT_SUCCESS;
}

 

Prosjektet bygger på QT, selv jeg ikke har begynt å bruke QT spesifike funksjoner enda, så bruker da QT Creator og dens compiler. Når jeg kompilerer får jeg bare "C:/Users/Håkon/Documents/QtMainWindow-test/clitest/main.cpp:14: error: cannot call member function `int console::shell()' without object" tilbake. Noen som ser noen umiddelbare feil?

Skrevet

Litt usikker på hva du prøver på så du har to løsninger.

 

Du kan få koden til å kjøre igjen ved enten:

Gjøre member funksjonen statisk (eks1) eller kalle shell ved først lage en console variabel for så kalle funksjonen fra objektet(eks2).

 

(eks1)

console.h:

#ifndef CONSOLE_H
#define CONSOLE_H
#include <iostream>
#include <string>
using namespace std;
class console
{
private:
	int findCommand();
public:
	static int shell();
};

#endif // CONSOLE_H

 

(eks2)

main.cpp

<snip>

int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
console konsolen;//< ny
konsolen.shell();//< ny
//	console::shell();
return a.exec();
}

 

Når du har gjort det så vil du få en ny feil ettersom int console::shell() ikke kjenner til cmd... men det vet du sikkert :)

 

Lykke til

  • 1 måned senere...
Skrevet

Kjapt spørsmål.. Akkurat startet med c++, har hatt 4 forelesninger. Skulle prøve å kompilere et eksempelprogram på min Ubunutu installasjon. Skriver da følgende i terminalen

g++ eks_01.cpp

Får ingen feilmeldinger, men terminalen jobbet i 2 sekunder, og var klar for ny input. Resultatet av kompileringen var kun en fil som a.out ellernoe, og den inneholdt en del svada.. Åssen skal jeg få opp et kjørbart program?

  • 2 uker senere...
Skrevet
Det ble gjort (minst) et forsøk på å løse dette (Embedded C++), men det ble jo ikke noe av.

Dæven, det der så jo rimelig fiasko ut:

 

Embedded C++ is a proper subset of C++. The following language features have been removed:

 

Her sitter man jo i beste fall igjen med en ganske barebone "C with classes".

  • 2 uker senere...
Skrevet

Trenger litt hjelp her nå. Jeg skal konvertere et flyttall som inneholder en tid i sekunder om til formatet "mm:ss:hh"

 

La oss si at min float tid inneholder 74.23, så skal output være 1:14:23.

Noen tips om hvordan jeg skal få til det?

Skrevet

Du kan ta:

minutter = tid % 60;

sekunder = tid - 60*minutter;

timer = minutter % 60;

minutter = minutter - 60*timer;

dager = timer % 24;

timer = timer - 24*dager;

 

Da har du antall sekunder på formen: antall dager, antall timer, antall minutter, antall sekunder.

Skrevet (endret)

Forresten. Dager blir ikke aktuelt. Formatet "mm:ss:hh" er minutter, sekunder og hundredeler. Timer blir heller ikke aktuelt. Hvordan blir det da?

 

floaten tid inneholder tiden i sekunder altså. Og den skal ut på overnevnte format.

Endret av _Ferrari_
Skrevet
int sekunder = (int)tid;
int minutter = sekunder / 60;
sekunder %= 60;
int hundredeler = (int)((tid - sekunder) * 100);
cout << setw(2) << minutter << ":" << sekunder << ":" << hundredeler << endl;

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å
×
×
  • Opprett ny...