Так что я пытаюсь запрограммировать функцию, которая позволяет пользователю вводить неограниченное количество символов. Например:Получение неограниченного ввода в C?
char string[100]
ограничивает ввод до 100 символов.
код я до сих пор является:
#include<stdio.h>
char* uinput(){
char *string, *current;
int counter = 0;
string = (char *) malloc(10 * sizeof(char));
do{
realloc(string, counter * sizeof(char));
current = string + counter;
*current = getchar();
counter++;
}while(*current != '\n');
return string;
}
int main(){
char *s;
s = uinput();
printf("\nYou entered: %s", *s);
return 0;
}
Я новичок на указатели, так что я не знаю, почему это не работает (сбой программы). То, что я пытаюсь сделать, это продолжать чтение символа и продолжать перемещать указатель на строку, чтобы количество байт продолжало увеличиваться до тех пор, пока пользователь не нажимает enter ('\ n').
Благодаря ~ Raf
Функция 'getline' - простой ответ. Первоначально это было расширение glibc (то есть не стандартная библиотека C), но оно также должно поддерживаться в режиме mingw. Если вам когда-либо нужно беспокоиться о кросс-платформе, тогда ее можно переопределить с помощью fgets и realloc. –
@rafaelThedoublemaster есть много проблем с кодом, я пишу ответ. –