その前に、fgets の解説。
char * fgets(char * s, int n, FILE*stream)は、stream から入力を受取り、文字数が n に達するか、改行を読み込むか、EOF(File の終わり)に達するまで 文字を s で指される配列に取り込むというものです。
void swap(int i, int j) { int t; t = i; i = j; j = t; } int main(int argc, char *argv[]) { int i = 10; int j = 20; swap(i, j); printf("%d %d\n", i, j); }
int i = 10; void f(int i) { i = i + 10; printf("%d\n", i); } int main(int argc, char *argv[]) { f(i); printf("%d\n", i); }
int i = 10; void f(void) { i = i + 10; printf("%d\n", i); } int main(int argc, char *argv[]) { f(); printf("%d\n", i); }
int f(int n) { if (n <= 0) return 0; else return f(n-1)+n*n; } int main(int argc, char *argv[]) { printf("%d\n", f(3)); }
double f(double x) { return x*x; }
char *s; char *t = "Kobe"; strcpy(s, t);
char *readline() { char buffer[1000]; if (fgets(buffer, 1000, stdin) == NULL) return NULL; return buffer; }
int main(int argc, char *argv[]) { char *line1, *line2; char buffer[1000]; line1 = fgets(buffer, 1000, stdin); line2 = fgets(buffer, 1000, stdin); fputs(line1, stdout); fputs(line2, stdout); }ただし入力は以下の2行で,エラーは起らないとする.
abcd efg
int main(int argc, char *argv[]) { char *line1, *line2; line1 = malloc(1000); line2 = malloc(1000); fgets(line1, 1000, stdin); fgets(line2, 1000, stdin); fputs(line1, stdout); fputs(line2, stdout); }ただし入力は以下の2行で,エラーは起らないとする.
abcd efg
typedef struct person PERSON; struct person { char *name; int age; }; PERSON *g(PERSON *p) { p->age += 10; return p; } int main(int argc, char *argv[]) { PERSON me, *p; me.name = "Taro"; me.age = 20; p = g(&me); printf("%d %d\n", me.age, p->age); }
2002.10.22/ Tomio KAMADA: kamada@cs.kobe-u.ac.jp