【发布时间】:2014-02-24 05:09:16
【问题描述】:
我正在为入门课程编写 C 程序,目前卡住了。
程序通过泰勒级数展开计算 cos(x) 的近似值。
关键是它从 dat 读取输入。该文件由一定数量的行组成,每行三个数字,包含要处理的信息。
例如,数据。文件可能是:
5
1 -1 6
2 1 .0001
2 1.5 2
...
每行的第一个数字决定了计算 cos(x) 的方法,第二个数字决定了 x 的值,以此类推
我将此文件作为多维数组处理:
int array[64][64], m;
FILE *ifp
ifp = fopen("cos_input.dat", "r");
i = 0;
fscanf(ifp, %d\n", &m); //takes the first value into int m
while (fscanf(ifp, "%d %d %d\n", &array[i][0], &array[i][1], &array[i][2]) == 3) {
i++;
}
^这段代码(我认为)将输入数据文件放入一个 m x 3 数组中。
现在我需要操作数组的元素,然后将它们写入另一个输出数据。文件,格式为,例如:
x = 1
x = 2
x = 3
x = 4
...
我的想法是首先用存储在多维数组中的值来实现我的其他函数,我相信我可以做到,只需声明我的数组的每个值并将它们扔到计算搅拌器中我的其他功能。 (例如,power(array[3][2], array[1][2]);) 然后我必须将它们打印到 dat。文件,我不知道该怎么做。
这是因为我对指针和 fprintf/fscanf 函数的了解非常粗略。
当我写我的最终数据时,它将包含一些循环,每行输出一个值。为了将其打印到 cos_output.dat 使用什么代码?为了打开输入文件并用scanf实现它,我必须创建一个类似于我创建'ifp'的新指针表达式'ofp'吗?
这是我迄今为止能想到的第一步,也是唯一的一步。
FILE *ofp; //output file pointer
ofp = fopen("cos_output.dat", "w"); //the final output data file
//.... how to print? T_T
谢谢,非常感谢您的帮助!
【问题讨论】:
-
我认为你真的应该想出更多的代码,虽然你的问题本身的格式和清晰。
标签: c pointers fopen scanf printf