2014-02-24 160 views
0

我正在为介绍性课程开发一个C程序,目前我一直在使用它。从文件中读取数据并打印到另一个文件的程序

该程序通过泰勒级数展开计算cos(x)的近似值。

问题是它从dat读取输入。文件,其中包含一定数量的每行三个数字的行,其中包含要处理的信息。

例如,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++; 
    } 

^此代码(我认为)将输入数据文件放入amx 3数组。

现在我需要操纵数组的元素,然后将它们写入另一个输出dat。文件,它采用的形式,例如:

x = 1 
    x = 2 
    x = 3 
    x = 4 
    ... 

我的概念来完成,这是第一次,实现我与存储在多维数组中的值等功能,我相信我能做到的,只是声明我的数组的每个值,并将它们投入到计算混合器中,这是我的其他功能。 (例如,power(array [3] [2],array [1] [2]);)然后我必须将它们打印到dat。文件,我不知道该怎么做。

这是因为我对指针和fprintf/fscanf函数的知识非常粗略。

当我编写我的最终数据时,它将包含一些循环,每个循环将会吐出一行值。什么是代码来使用打印到cos_output.dat?我必须创建一个新的指针表达式'ofp',类似于我创建'ifp'以打开输入文件并使用scanf实现它吗?

这是我第一个也是唯一一个可以提出的步骤。

FILE *ofp; //output file pointer 
    ofp = fopen("cos_output.dat", "w"); //the final output data file 
    //.... how to print? T_T 

非常感谢您的帮助!

http://ece15.ucsd.edu/Labs/lab3.pdf)< - 仅当我的解释不清楚时才会链接到作业(问题1)。

+1

我认为你真的应该想出更多的代码,尽管你的问题本身格式化和清晰。 –

回答

0

你可以做这样

FILE *ofp; //output file pointer 
ofp = fopen("cos_output.dat", "w"); //the final output data file 
for (i = 0; i < 5; i++) { 
    fprintf(ofp, "x = %d\n", i); 
} 

这东西会产生cos_output.dat文件打印到文件包含

x = 0 
x = 1 
x = 2 
x = 3 
x = 4 

您可以修改此fprintf()语句来输出任何你想要的。进一步的细节见fprintf(3)

+0

GOT IT !!!!!!!!! – ZumbaLover69

相关问题