gpt4 book ai didi

c - c中fgets的使用

转载 作者:行者123 更新时间:2023-11-30 14:53:49 29 4
gpt4 key购买 nike

我需要编写一个程序,将数字从一个基数转换为另一个基数。我需要获取以下形式的用户输入:<original base><new base><number in original base>

我不允许使用 scanf,也不允许我假设行的大小。我已经尝试过使用 fgets()但我不知道如何在不限制大小的情况下使用它。我很想知道该怎么做。谢谢。

#include <stdio.h>
#include <math.h>
#include <stdlib.h>

int BaseChanger()
{
char input[12];
printf("enter the original base, new base ,number");
fgets(input, 12, stdin);
}

最佳答案

您可以将此代码段用作 getline 的形式

int max= 100;
char* array;
array = malloc(max*sizeof(char));
if(array == NULL)
exit(1);
int c,i=0;
while( ( c = getchar()) != EOF && c != '\n' && i < max ) {
array[ i++ ] = c ;
if( i == max)
{
char * narray = realloc(array, max *= 2);
if( narray == NULL ){
free(array);
exit(1);
}
array = narray;
}
...
}

完成此操作后,提取数字,然后执行其余逻辑。

关于c - c中fgets的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46999659/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com