假设我有一个包含 100000 个整数的文件。每个整数都位于文件中的新行上。 我的任务是首先将这些整数存储在一个数组中,然后使用归并排序算法找到这 100000 个数字中可能的反转次数。后一部分我已经成功做到了。
我编写了代码来读取每一行,然后将每个数字存储在二维数组中。例如,54667 在第一行,67890 在第二行
然后我编写的代码执行此操作
arr[i][j]=5 arr[i][j+1]=4 arr[i][j+2]=6........(and so on)
arr[i+1][j]=6 arr[i+1][j+1]=7 arr[i+1][j+2]=8......
然后我必须通过乘以适当的 10 次幂来重建这些整数,并将它们存储在一个一维数组中。
但是,在编写这段代码时,我不知何故确信必须有一种更简单的方法可以在 C 中执行此操作。例如,是否有一些函数或命令可以使这项工作变得更容易?
最佳答案
是的,只需在每一行使用 fgets
和 strtol
即可。
char line[LEN];
long array[NUM];
int i;
while (i < NUM && fgets(line, sizeof(line), stdin))
array[i++] = strtol(line, NULL, 10);
关于c - C 中的文件处理。更多命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9663401/