[ create a new paste ] login | about

Link: http://codepad.org/plo7qOEc    [ raw code | fork ]

C, pasted on Nov 12:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

struct data_list {
    struct data_list *next;
    char data[];
};

int main(int argc, char **argv)
{
    char buf[1024];
    struct data_list data_list =  {0}, *p;
    int l;

    fputs("文字列を入力してください。ctrl-dで終了:\n", stderr);
    for (;;) {
        fputs("? ", stderr);
        if (fgets(buf, sizeof(buf) - 1, stdin) == NULL)
          break;
        l = strlen(buf);
        for (p = &data_list; p->next != NULL; p = p->next)
          ;
        p->next = malloc(sizeof(data_list) + l + 1);
        if (p->next == NULL) {
            perror("Mallocに失敗しました");
            return 1;
        }
        p->next->next = NULL;
        strcpy(p->next->data, buf);
    }
    putc('\n', stderr);

    for (p = data_list.next; p != NULL;  p = p->next)
      fputs(p->data, stdout);
    return 0;
}


Create a new paste based on this one


Comments: