如何在一个循环中读取多个字符串,每个字符串的长度都是以前未知的?我尝试了以下但它没有按预期工作。
int main()
{
int j, i = 0;
char c;
char *buf = malloc(20);
size = 20;
for(j = 0; j < 10; j++)
{
i = 0;
while(1)
{
if(i == size)
{
buf = realloc(buf,size+10);
size += 10;
}
char c = getchar();
if(c == '\n')
break;
buf[i] = c;
i++;
}
buf[i] = '\0';
printf("%s\n", buf);
}
}
只有当我将这些字符串作为输入时它才有效。但是假设我在输入字符串之前有一个 scanf("%d",&j) 然后按 enter 进行此 scanf 将使我的第一个字符串为空