Avatar billede testpilot_dk Nybegynder
08. oktober 2005 - 14:44 Der er 17 kommentarer og
1 løsning

Hent Bibliotek programmet ligger i

Hej!

Et nemt spørgsmål, hvordan får jeg programmet til at finde sin egen sti, altså der hvor man nu har placeret det.
Avatar billede bertelbrander Novice
08. oktober 2005 - 14:58 #1
Hvis der er på windows:
#include <iostream>
#include <windows.h>

int main()
{
  char Path[1024], Drive[1024], Dir[1024];
  GetModuleFileName(0, Path, sizeof(Path));
  _splitpath(Path, Drive, Dir, 0, 0);
  strcat(Drive, Dir);
  std::cout << "MyDir: " << Drive << std::endl;
}

Nogen kompilere vil måske ikke have _ foran splitpath
Avatar billede arne_v Ekspert
08. oktober 2005 - 15:24 #2
nogen compilere vil have fuld sti til exe i argv[0]
Avatar billede bertelbrander Novice
08. oktober 2005 - 15:58 #3
Ja, programmer kompileret med Digital Mars eller BorlandC++ ser ud til at have fuld sti i argv[0]

Programmer kompileret med gcc og VisualC++ har ikke, her får man så vidt jeg kan se, det brugeren har skrevet for at køre programmet råt.
Avatar billede testpilot_dk Nybegynder
08. oktober 2005 - 16:43 #4
takker Bertel!

Det var jo lige det som jeg skulle bruge!

Et tillægsspørgmål, er der også en smart måde at få System Tiden på!

Læg et svar her og hvad skal jeg gører med den anden http://www.eksperten.dk/spm/653140
Avatar billede arne_v Ekspert
08. oktober 2005 - 16:54 #5
ANSI C/C++:

time()

(kan formateres med localtime/ctime/asctime/strftime)
Avatar billede arne_v Ekspert
08. oktober 2005 - 16:55 #6
Win32:

GetLocalTime
Avatar billede testpilot_dk Nybegynder
08. oktober 2005 - 16:59 #7
ikke helt med

'Hvad skal jeg med det
Avatar billede arne_v Ekspert
08. oktober 2005 - 17:04 #8
du spurgte om hvordan du fik system tiden ...
Avatar billede arne_v Ekspert
08. oktober 2005 - 17:07 #9
eksmepler:

#include <time.h>
#include <stdio.h>

int main()
{
  time_t t;
  struct tm *ts;
  t=time(NULL);
  ts=localtime(&t);
  printf("It is %02d/%02d/%04d %02d:%02d",ts->tm_mday,ts->tm_mon,1900+ts->tm_year,ts->tm_hour,ts->tm_min);
  return 0;
}

#include <iostream>
#include <ctime>

using namespace std;

int main()
{
  time_t t = time(NULL);
  cout << ctime(&t) << endl;
  char buf[33];
  strftime(buf,sizeof(buf),"%d-%m-%Y %H:%M:%S",localtime(&t));
  cout << buf << endl;
  return 0;
}

#include <windows.h>
#include <wininet.h>

int main()
{
  SYSTEMTIME t;
  char buf[INTERNET_RFC1123_BUFSIZE];
  GetLocalTime(&t);
  InternetTimeFromSystemTime(&t,INTERNET_RFC1123_FORMAT,buf,sizeof(buf));
  printf("%s\n",buf);
  return 0;
}
Avatar billede bertelbrander Novice
08. oktober 2005 - 20:13 #10
Jeg samler ikke på point. Det betyder at du selv tager de point tilbage som jeg skulle have. Det gør du ved lave et svar selv og acceptere det.

I dette spørgsmål bør du give Arne point for hans time() eksempler (hvis det løste dit problem, hvis ikke, så fortæl lige hvad du ikke forstod).

I det andet spørgsmål tager du bare dine point tilbage.
Avatar billede testpilot_dk Nybegynder
09. oktober 2005 - 11:31 #11
'Okay Bertel, det gør jeg bare!

Så Arne læg du et svar her ??

Fortsat god søndag
Avatar billede arne_v Ekspert
09. oktober 2005 - 11:40 #12
gerne
Avatar billede testpilot_dk Nybegynder
09. oktober 2005 - 14:08 #13
Hvad for en Time bruger den, jeg får nemlig den 9/9/2005
Avatar billede arne_v Ekspert
09. oktober 2005 - 14:11 #14
hvad for en af dem ?

det ligner et tilfælde af at måned er 0-11 og ikke 1-12
Avatar billede testpilot_dk Nybegynder
09. oktober 2005 - 14:13 #15
Den øverste:

Altså denne

int main()
{
  time_t t;
  struct tm *ts;
  t=time(NULL);
  ts=localtime(&t);
  printf("It is %02d/%02d/%04d %02d:%02d",ts->tm_mday,ts->tm_mon,1900+ts->tm_year,ts->tm_hour,ts->tm_min);
  return 0;
}
Avatar billede arne_v Ekspert
09. oktober 2005 - 14:16 #16
min fejl

printf("It is %02d/%02d/%04d %02d:%02d",ts->tm_mday,1+ts->tm_mon,1900+ts->tm_year,ts->tm_hour,ts->tm_min);
Avatar billede arne_v Ekspert
09. oktober 2005 - 14:16 #17
tm_mon er 0-11 ikke 1-12
Avatar billede testpilot_dk Nybegynder
09. oktober 2005 - 14:18 #18
okay, det er vi så enige om! takker for svaret
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester