所以我試圖編程一個功能,允許用戶輸入無限量的字符。例如:在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代碼有很多問題,我正在寫一個答案。 –