【发布时间】:2016-06-30 01:38:45
【问题描述】:
所以我正在尝试编写一个允许用户输入无限数量的字符的函数。例如:
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 代码有很多问题,我正在写答案。