вторник, 28 июня 2011 г.

Безлимитный прием текста


#include ‹stdlib.h›
#include ‹stdio.h›
#include ‹string.h›

#define BUFFER_ADD 8

int getcEx(char * str);

int main()
{
char * str = (char *)calloc(BUFFER_ADD, sizeof(char));
getcEx(str);
printf(str);
free(str);
return 0;
}

int getcEx(char * str)
{
char ch;
int pos = 0, length = strlen(str);

while ((ch = getc(stdin)) != '\n')
{
if ((pos + 1) >= length)
{
length += BUFFER_ADD;
str = (char *)realloc(str, length);
}
str[pos++] = ch;
str[pos] = 0;
}
return 0;
}



принимаем от пользователя текст в консоли стандартными средствами, в неограниченных(пока не кончиться вся память) количествах.

Комментариев нет:

Отправить комментарий