c - C 中的文件处理。更多命令?

标签 c file-io

假设我有一个包含 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 中执行此操作。例如,是否有一些函数或命令可以使这项工作变得更容易?

最佳答案

是的,只需在每一行使用 fgetsstrtol 即可。

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/

相关文章:

python - 如何在Python中读取带有包装列的数据?

.net - 在 VB.NET 中保存数千个文件的最快方法?

java - 在Java中将数据追加到文件的正确方法

java - BufferedWriter java 问题

c - 普通的指针算术可以在 opencl 内核上工作吗?

c - 在具有不同宽度文件的 C 中使用 fscanf

c++ - 使用 strlen() 在堆栈中分配缓冲区

android - 在 Android 上运行 "Hello World!"ANSI C 程序?

c++ - 协助 C++ 中的文件输入和输出

c - C 中的结构