所以我试图编程一个功能,允许用户输入无限量的字符。例如:在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;
}
我是新来的指针,所以我不知道为什么,这并不工作(程序崩溃)。我试图做的是不断读取一个字符,并继续重新定位字符串指针,这样字节数量不断增加,直到用户按下输入('\ n')。
感谢 〜拉夫
getline函数是一个简单的答案。它最初是一个glibc扩展(即不是C标准库),但它也应该在mingw下支持。如果您需要担心跨平台问题,那么可以使用fgets和realloc来重新实现它。 –
@rafaelThedoublemaster代码有很多问题,我正在写一个答案。 –