Avatar billede petestaar Nybegynder
06. maj 2005 - 21:16 Der er 6 kommentarer

Kalde en variabel i en void.

Hej exp'er..

Sidder og rodder med noget C programmering. Har en 'main' fil og en 'void edit'. Jeg har en varibel 'C' i min main, hvor indholdet fra en text fil bliver indlæst i. Jeg vil så gerne kalde variablen 'C', i min 'void edit', så jeg kan bruge den her. Hvordan gør jeg gøre det? På forhånd tak...

#include <stdio.h>
#include <ctype.h>

#define MAX_CHAR_PER_LINE 15

struct textline {
      char linelength[MAX_CHAR_PER_LINE];
              };

int main(int argc, char* argv[]){
   
  char s[200];
  int str;
  int C;
  FILE *f;

  f=fopen(argv[1], "r");                                                     
  if (f!=NULL){
      while ((C = getc(f))!= EOF){
.....

void edit(char *v, int i, struct textline *t){                                       
 
  t=(struct textline*)malloc(sizeof(struct textline));                                                                           
 

  for(i=0; i<MAX_CHAR_PER_LINE; i++){
  t -> linelength[i]=*(v+i);
 
....
Avatar billede the_rapid Nybegynder
06. maj 2005 - 21:27 #1
Hej jeg kan give dig samme svar som jeg lige har fået brug en extern variabel ved at at deffinere din int c i global space kan du kalde den fra begge funktioner eks:

int c; /*defiineret i global space*/
int main(void){
extern int c;
....
}

int funkton2(void){
extern int c;
}

Du kan alternativt lave det med pointer int *c;
og give den med som et arg til din edit funktion:)
Avatar billede petestaar Nybegynder
06. maj 2005 - 21:49 #2
Jeg får indholdet af text filen over i variablen C på denne måde:

  while ((C = getc(f))!= EOF){

og vil så gerne udskrive den i min void edit()..

    void edit()...
    printf("%c", C);

Mener du bare jeg kan bruge en pointer her? Synes ikke det spiller helt..
Avatar billede the_rapid Nybegynder
06. maj 2005 - 22:31 #3
Hej Igen.
Du kan bruge pointer, men som du forklare det skal du ikke bahandle C i edit og derfor kan du nøjes med at kalde edit med en int jeg har lavet et lille eks som du skulle kunne anvende:
#include <stdlib.h>
#include <stdio.h>

void print(int);

int main (void){
  int c;
  FILE *fil;

    fil=fopen("test","r");
    while ((c = getc(fil))!=EOF){
    print(c);
    }
}

void print(int c){
  printf("%c",c);

}
Avatar billede petestaar Nybegynder
07. maj 2005 - 20:42 #4
Hej..

De virker fint. Har fundet en anden måde på det. Men tak for hjælpen.. Du får lige de 30 points..
Avatar billede petestaar Nybegynder
07. maj 2005 - 20:43 #5
Hvis du lige smider et svar..
Avatar billede the_rapid Nybegynder
09. maj 2005 - 21:56 #6
Ja tak for det
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