c - 从 C 中的 getchar() 获取一个大整数?

标签 c input integer text-files getchar

我正在读取一个包含“$”分隔值的文件,例如 W$65345$23425,并且一直在使用 getchar() 获取这些值(而 n=getchar() != '$')等等。当我得到第二个值时,我制作了一个整数列表并用 getchar() 填充该列表,所以我很确定我有一个列表 [6,5,3,4,5]。如何将其转换为值为 65345 的 int? 这是我的代码:

void read_data(char* pa,int*  pb,double*  pc){
        int n;
        pa = &n;
        n = getchar();

        int j[25];
        int m = 0;
        while ((n=getchar()) != '$'){
                j[m] = n;
                m++;
        }
        pb = &j;

        n = getchar();

        int x[25];
        m = 0;
        while ((n=getchar()) != '$'){
                x[m] = n;
                m++;
        }
        pc = &x;
        return ;
}

最佳答案

试试这个

int read_data()
{
    int n = getchar();
    int ret = 0;
    while(n != '$')
    {
        ret = 10 * ret + n - '0';
        n = getchar();
    }
    return ret;
}

关于c - 从 C 中的 getchar() 获取一个大整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23298367/

相关文章:

java - 如何在edittext上创建特定的输入类型?可接受输入罗马数字 M D C X V I

java - 如何在java中改变字符串中的字符

java - Java中如何将10位电话号码解析为整数

java - 如何在java中声明一个数值变量,该变量始终保存固定长度为3位的数字值。

c - 如何在新函数中继续执行 if 语句?

c - 为什么 int 类型的变量在许多语言中默认是有符号的?

jquery - 更改焦点上的占位符文本

c - 在C中将整数显示为十六进制

c - 如果在输入时 scanf 中不包含 '&' 运算符,会发生什么情况?

c - 在C中的链表的开头插入条目