Jeg er ved at lave et program til primtalsfaktorering, og jeg har derfor lavet noget kode til at finde en masse primtal. Jeg mangler noget kode til at skrive disse til en fil. Derefter skal jeg også bruge noget kode til at læse selv samme fils indhold ind i det program, der arbejder med primtalsfaktorering. Jeg søger også funktioner, der kan samle/splitte en string til og fra et array (i php hedder de explode og implode)...
Det skal siges, at jeg laver disse programmer i et text-baseret layout (dvs. uden GUI). Jeg bruger Borland C++ Builder 5 Enterprise Edition.
Ad 1) Læse/skrive til en fil. Jeg antager at det er integer du har behov for at gemme. For nemheds skyld vil jeg forslå dig at lave en fil svarende til din primtals tabel, som du f.eks. definerer:
int primes[maxPrimes];
Den kan du så læse/skrive til/fra en fil sådan her:
#include <stdio.h> int main(void) { FILE *primeFile;
if ((primeFile = fopen("C:\\primes.fil", "r+b")) == NULL) { // Primtals fil ikke fundet - afslut med fejl. return -1; };
// Skriv den tilbage til filen. if (fwrite(%primes, sizeof(primes), 1, primeFile) != 1) { // FEJL fclose(primeFile); return -1; };
// Luk filen og afslut normalt. fclose(primeFile); return 0; }
Ad 2) Split en streng Hvordan splitte ? Hvad indeholder stengen ? hvis det er "ord" adskildt af et eller andet tegn (f.eks. semikolon ';') kan du f.eks. bruge strtok() funktionen:
#include <string.h> #include <conio.h>
int main(void) { char orgString = "Denne streng indeholder en tekst på 8 ord."; char *ptrWords[20]; int nbrWords, idx; char tmpStr[257];
cprintf("Teksten er:\r\n%s", orgString); for (idx = 0; idx < nbrWords; idx++) cprintf("Ord nr. %d er: %s\r\n", idx+1, ptrWords[idx]); cprintf("Der er %d ord i alt.\r\n", nbrWords); return 0; }
Synes godt om
Ny brugerNybegynder
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.