Avatar billede dragnor Juniormester
15. december 2003 - 17:12 Der er 7 kommentarer og
1 løsning

åbning af fil og læsning af værdi og konvertering til int

Det er et meget indviklet spørgsmål. Men for jer som er seje til C er det nok ikke noget problem.
Det som er meningen med denne lille hygge opgave jeg har fået er, at jeg skal oprette to filer med en værdi i hver. Så skal jeg hente værdien fra den ene ind i en variable og så skal værdien fra den anden fil hentes ind og ligges til den anden og udskrives i den for-løkke som ligger neders i koden. Som den hurtige nok vil opdage så skal den værdi som ligges til første gang, ligges til et par gange så den samlet sum bliver mere end bare hvad de to filers værdier giver tilsammen.

#include <unistd.h>
#include <sys/stat.h>
#include <stdlib.h>
#include <sys/types.h>
#include <fcntl.h>
#include <sys/wait.h>

int main()
{
  char c;
  int in, out;
  pid_t pid;
  char *tal;
  int n;
  int sum,tal1,tal2;

  in = open ("p.txt", O_WRONLY|O_CREAT, S_IRUSR|S_IXOTH|S_IWOTH);
  write(in, "15",2);

  in = open ("c.txt", O_WRONLY|O_CREAT, S_IRUSR|S_IXOTH|S_IWOTH);
  write(in, "10",2);

  pid = fork();
  switch(pid){
  case -1:
    perror("fork faild");
    exit(1);
  case 0:
    out = open ("p.txt", O_RDONLY);
    write(out,&c,1);
    printf("%d\n",c);
    //tal1 = atoi();
    //sum = tal1;
    n = 5;
    break;

  default:
    out = open ("c.txt", O_RDONLY);
    write(out,&c,1);
    printf("%d\n",c);
    //tal1 = atoi();
    //sum = tal1;
    n=3;
    break;
  }
  for(;n>0;n--){
    //printf("%i", sum);
    sleep(1);
  }
  exit(0);
}
Avatar billede dragnor Juniormester
15. december 2003 - 17:18 #1
Det vigtigste jeg behøver at vide er hvordan jeg læser værdien i f.eks. filen c.txt og ligger  den ind i en int variabel...
Avatar billede dragnor Juniormester
15. december 2003 - 17:19 #2
jeg får nemlig en værdi som hedder 64 istedet for 10...
Avatar billede arne_v Ekspert
15. december 2003 - 17:53 #3
out = open ("p.txt", O_RDONLY);
write(out,&c,1);

jeg mistænker dig stærkt for at mene read og ikke write ....
Avatar billede arne_v Ekspert
15. december 2003 - 17:54 #4
Og du skal nok læse 2 tegn ind og så konvertere dem til int.
Avatar billede arne_v Ekspert
15. december 2003 - 17:56 #5
Må jeg have lov til at foreslå stdio ?

FILE *fp;
...
fp = fopen("filnavn.ext","w");
fprintf(fp,"%d\n",123);
fclose(fp);
...
fp = fopen("filnavn.ext","r");
fscanf(fp,"%d",&tal);
fclose(fp);

meget nemmere at styre.
Avatar billede dragnor Juniormester
15. december 2003 - 18:02 #6
tak arne v! det sidste du skrev lader til at være det jeg skal bruge...
Avatar billede arne_v Ekspert
15. december 2003 - 18:05 #7
Du skal have:

#include <stdio.h>
Avatar billede arne_v Ekspert
15. december 2003 - 18:05 #8
OK ?
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