willbend Skrevet 7. august 2005 Del Skrevet 7. august 2005 #include <iostream> using namespace std; void lol(); int main(int numberofargs, char* psyz[]) { cout<<"The password is: "; lol(); cout<< password; } void lol() { static int password=144; } Hvorfor blir ikke 144 printet ut ? Skal ikke static gjøre variabelen tilgjengelig utenfor dens function ? Lenke til kommentar
☀ ❄ Skrevet 7. august 2005 Del Skrevet 7. august 2005 (endret) Nei. static gjør (i denne sammenhengen) at tallet fortsetter å eksistere i funksjonen gjennom hele programmet, i stedet for å bli skapt på nytt hver gang funksjonen kalles. Hvis du skriver: #include <iostream> int lol(); int main() { std::cout << "The password is: " << lol() << std::endl; } int lol() { static int password = 144; return password; } vil programmet gjøre som du forventer. (NB: Det er vanlig høflighet (eller konvensjon, om du vil) å kalle argumentene til main() for hhv. argc (argument count) og argv (argument vector).) Edit: Hadde forskjellig returtyper på prototype og definisjon av lol() Endret 10. august 2005 av Myubi Lenke til kommentar
Kjeksen Skrevet 7. august 2005 Del Skrevet 7. august 2005 Går det an og lagre data i en variabel som blir der uansett om programmet er avsluttet? Lenke til kommentar
☀ ❄ Skrevet 7. august 2005 Del Skrevet 7. august 2005 I utgangspunktet ikke (du kan gjøre det om du konstruerer en plattform for å takle det, men det sier seg selv at det ikke er spesielt flyttbart...). Vanlig fremgangsmåte er å lagre det til en fil e.l. og lese det inn fra filen neste gang programmet kjøres. Lenke til kommentar
kattemat Skrevet 7. august 2005 Del Skrevet 7. august 2005 Tja... du kan jo lage et pogram som regenererer seg selv med hardkodede verdier for de variablene du ønsker skal være persistente. Så må programmet erstatte sin egen lagrede originalkode med den nye før det terminerer. Eyh, Myubi, TheGreatDebate er definitivt en av de artigste låtene fra SDIT ;-) Lenke til kommentar
☀ ❄ Skrevet 7. august 2005 Del Skrevet 7. august 2005 Eyh, Myubi, TheGreatDebate er definitivt en av de artigste låtene fra SDIT ;-) Utvilsomt Lenke til kommentar
Mr.Garibaldi Skrevet 8. august 2005 Del Skrevet 8. august 2005 Går det an og lagre data i en variabel som blir der uansett om programmet er avsluttet? Hva slags data er det du ønsker å lagre, og for hvor lenge? Hvis du kan bruke en int, så kan du bruke returverdien fra main(). Spørsmålet så blir hvorvidt OSet du bruker tar vare på denne verdien, og hvor lenge den i så fall er tilgjengelig. Det ville vel strengt tatt være enklere å lagre verdiene til en fil som du så kan aksessere hver gang du kjører programmet for å hente inn og skrive ut de data du måtte ønske å ta vare på... Lenke til kommentar
Kjeksen Skrevet 8. august 2005 Del Skrevet 8. august 2005 Det ville vel strengt tatt være enklere å lagre verdiene til en fil som du så kan aksessere hver gang du kjører programmet for å hente inn og skrive ut de data du måtte ønske å ta vare på... Joda, men hva slags filer er det mest vanlig å lagre data på da? regner med at det ikke er .txt filer? Lenke til kommentar
GeirGrusom Skrevet 8. august 2005 Del Skrevet 8. august 2005 en binærfil? #include <stdio.h> int savepw(char *filename) { if(!(FILE *fp = fopen(filename, "wb"))) return 1; int val = lol(); fwrite(&val, sizeof(int), 1, fp); fclose(fp); } Lenke til kommentar
Peter Skrevet 8. august 2005 Del Skrevet 8. august 2005 Det ville vel strengt tatt være enklere å lagre verdiene til en fil som du så kan aksessere hver gang du kjører programmet for å hente inn og skrive ut de data du måtte ønske å ta vare på... Joda, men hva slags filer er det mest vanlig å lagre data på da? regner med at det ikke er .txt filer? Spørs jo helt på hva slags detaljer du skal lagre. Er det programinnstillinger, så pleier disse ofte å være lagret i akkurat tekstfiler, ofte med endelsen .ini eller .cfg. Hva slags endelse du bruker på filene er egentlig helt opp til deg, men det finnes jo en viss etikette. (Ikke bruke .exe på tekstfiler osv.) Lenke til kommentar
Kjeksen Skrevet 8. august 2005 Del Skrevet 8. august 2005 Og skrive til slike filer som for eks. ini eller cfg. Er det det samme som og skrive til en .txt fil da eller? Ved å bruke fstream? Eller er det helt egne funksjoner til å skrive til slike filer? Lenke til kommentar
Peter Skrevet 8. august 2005 Del Skrevet 8. august 2005 (endret) Dersom du skal gjøre det selv uten å bruke noen andres biblioteker (unntatt std bibliotekter), så lager du gjerne en klasse som bruker fstream osv, ja. Hva filen heter velger du når du bruker std::fstream::open(NAVN_HER), og da kan NAVN_HER være nesten hva du vil, f.eks. innstillinger.ini, eller innstillinger.bin om du vil. Endret 8. august 2005 av Nazgul Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå