|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T g
Length: 1238 (0x4d6) Types: TextFile Names: »getwd.c«
└─⟦b20c6495f⟧ Bits:30007238 EUUGD18: Wien-båndet, efterår 1987 └─⟦this⟧ »EUUGD18/General/Hangman1/getwd.c«
/* getwd.c * gets word, and if debug defined prints the word * written by: ritcv!jxs7451 */ #include "hangman.h" #include<stdio.h> getwd(word, length) char word[]; int *length; { long getrand(); /* random number generator */ int fd; /* file descriptor */ int i; /* everyday array counter */ int flag=0; /* flag==1 if need to get new word */ char ch; /* 1 character buffer */ fd = open(WORDL,0); lseek(fd,getrand(),0); /* goto offset position */ for (read(fd,&ch,1);ch != '\n';read(fd,&ch,1)); /* skip to next word */ for (read(fd,&ch,1),i=0;ch != '\n';read(fd,&ch,1),i++) word[i] = ch; close(fd); word[i] = '\0'; for (i=0;word[i] != '\0';i++) /* mapping caps to smalls */ if ((word[i] >= 'A') && (word[i] <='Z')) word[i] -= ('A' - 'a'); if ((i-2) < *length) /* i-2 is length of the word */ flag++; for (i=0;word[i] != '\0';i++) /* checking for non lowercase */ if ((word[i] < 'a') || (word[i] > 'z')) { flag++; /* set flag */ break; /* exit loop */ } if (flag) /* checking if need to get another word */ getwd(word, length); }