我试图从单独的程序中读取我打印到.txt文件的信息,并将其显示在这个新程序中。虽然当我运行该程序时,它说该文件无法找到。我怀疑它是我的代码,而不是文件的位置,因为我已经仔细检查了我的硬代码,这是我到目前为止所做的,如果有人能指出我正确的方向那将是伟大的!
#include <stdio.h>
#include <stdlib.h>
#define ARRAY_SIZE 21
typedef struct data_slice
{
int t; // -> Time
float tp; // -> Valve pressure
float tf; // -> Sodium flow
float tt; // -> Sodium temp in Celsius
} data_slice;
void printIt(data_slice * data);
int main()
{
float num;
FILE *fptr;
data_slice data[ARRAY_SIZE];
if ((fptr = fopen("/Users/captainrogers/Documents/output_data.txt","r")) == NULL){
printf("Error! opening file");
// Program exits if the file pointer returns NULL.
exit(1);
}
fscanf(fptr,"%f \n", &num);
printIt(data);
fclose(fptr);
return 0;
}
void printIt(data_slice * data)
{
// Find the indice holding the time value of -10
int indice = 0;
for (int i = 0; i < ARRAY_SIZE; ++i)
{
if (data[i].t == -10)
{
indice = i;
break;
}
}
// Print results to screen
for (int i = 0, temp = indice; i < ARRAY_SIZE; ++i)
{
printf("%i\t %f\t %f\t %f\n", data[temp].t, data[temp].tp, data[temp].tf, data[temp].tt);
temp = (temp + 1) % ARRAY_SIZE;
}
}
数据我试图从.txt打印:
-10 595.000000 15.000000 167.000000
-9 557.000000 17.000000 168.000000
-8 634.000000 17.000000 114.000000
-7 656.000000 10.000000 183.000000
-6 561.000000 13.000000 139.000000
-5 634.000000 17.000000 124.000000
-4 672.000000 19.000000 155.000000
-3 527.000000 14.000000 166.000000
-2 656.000000 11.000000 188.000000
-1 661.000000 18.000000 141.000000
0 689.000000 17.000000 146.000000
1 624.000000 11.000000 104.000000
2 504.000000 20.000000 120.000000
3 673.000000 18.000000 147.000000
4 511.000000 12.000000 114.000000
5 606.000000 14.000000 171.000000
6 601.000000 13.000000 159.000000
7 602.000000 11.000000 127.000000
8 684.000000 10.000000 194.000000
9 632.000000 16.000000 139.000000
10 651.000000 13.000000 168.000000
答案 0 :(得分:0)
fopen("/Users/captainrogers/Documents/output_data.txt","r")
如果找不到该文件,请仔细检查您的路径。也许首先尝试使用包括驱动器号在内的完整路径。
fscanf(fptr,"%f \n", &num);
始终检查fscanf()
的返回值。 "%f \n"
可能不是您想要的格式字符串。
printIt(data);
主要问题:您从未将任何数据读入data[]
。
答案 1 :(得分:0)
fptr = fopen(“C://Users//captainrogers//Documents//output_data.txt”,“r”)) 如果您确定您的文档位于正确的文件中,请尝试使用此代码。