我需要从标准输入中读取大量数据,这是我目前的代码:
int main() {
int x;
int* n1;
scanf("%d", &x); // I get the number of digits the integer will have
n1 = malloc(x * sizeof(int)); // I resize the integer pointer
}
所以我的问题是如何从标准输入读取这个可能很大的整数?
最佳答案
C 中没有“动态大小的 int”这样的东西。正如其他人所建议的,根据您的用例,将数字读取为字符串可能是您想要的。 (如果为此使用 scanf
,请注意缓冲区溢出。)
如果您需要对数字进行算术运算,您可能希望使用现有的库,例如 libgmp为此,可以从现有的问题解决方案中受益。您也可以自己重新实现 libgmp 的功能,但除非您将此作为学习练习,否则没有理由这样做。
关于c - 将输入读入动态大小的 int?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30112999/