Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在C语言中打开一个.txt文件并对每一行依次应用一个公式_C - Fatal编程技术网

如何在C语言中打开一个.txt文件并对每一行依次应用一个公式

如何在C语言中打开一个.txt文件并对每一行依次应用一个公式,c,C,我必须为大学写一个代码,在其中我必须阅读一个包含三列的.txt文件:一天中的小时数、太阳辐射、雨量表(mm),并根据用户提供的信息对每一行连续应用一个等式。我成功地构建了一段代码,该代码将等式应用于用户一次选择的一行。如何将该等式应用于每一行并同时显示它们 我使用的.txt文件是: 0 -0.82 17.2 1 2386 14.4 2 1980 0.22 3 470 0.0 4 2731 0.2 5 1531 0.0 6 3084 0

我必须为大学写一个代码,在其中我必须阅读一个包含三列的.txt文件:一天中的小时数、太阳辐射、雨量表(mm),并根据用户提供的信息对每一行连续应用一个等式。我成功地构建了一段代码,该代码将等式应用于用户一次选择的一行。如何将该等式应用于每一行并同时显示它们

我使用的.txt文件是:

0   -0.82   17.2
1   2386    14.4
2   1980    0.22
3   470 0.0
4   2731    0.2
5   1531    0.0
6   3084    0.4
7   2197    0.4
8   313 0.0
9   1428    0.0
10  47.01   0.0
11  138.8   0.0
12  328.4   0.0
13  431.2   0.4
14  419.6   0.2
15  447.8   0.8
16  572.2   0.2
17  801.5   0.0
18  849.1   0.0
19  561.1   0.0
20  376.6   0.0
21  122.9   0.0
22  -1.69   0.0
23  -1.46   0.0
我的代码如下(请原谅我的不完美,我是一个编程乞丐):

#包括
#定义效率0.83//83%,标准太阳能电池效率
int h,a;
整数效力(整数x,整数y,整数z)
{
返回(x*y*z);
}
整小时[24],i=0;
浮子辐射[24]、雨水[24]、能量、能量、pt、p、e、ep、ee;
int main()
{
文件*arq;
arq=fopen(“file2.txt”,“r”);
if(arq==NULL){
printf(“错误!无法打开文件!\n”);
getchar();
}
否则{
printf(“文件打开…\n”);
printf(“读取文件…\n”);
而(!feof(arq)){
fscanf(arq、%d%f%f\n、&hour[i]、&radio[i]、&rain[i]);
i++;
}
printf(“输入所需的小时数”);
scanf(“%d”、&h);
printf(“打印板面积m^2\n”);
scanf(“%d”和“&a”);
printf(“以瓦特/M^2\n为单位的类型最大板桥”);
scanf(“%f”、&p);
ep=p*efi;//计算标准效率后的板电位
printf(“电路板的总效率为%.2f%”,ep);
pt=a*ep;
printf(“总板电位为%.2f\n”,pt);
能量=(pt*半径[h]);//产生的能量
energk=(浮点)energ/1000;//以千瓦为单位的发电量
printf(“在%d hoour时,平均辐射量为%.2f KW/m^2\n%.2f mm降雨\n,配电盘产生的总能量为%.2f KW\n”、小时[h]、辐射[h]、降雨[h]、能量k);
printf(“\n\n\n按完成”);
getchar();
}
fclose(arq);
}
#包括
#定义效率0.83//83%,标准太阳能电池效率
int h,a;
整数效力(整数x,整数y,整数z)
{
返回(x*y*z);
}
整小时[24],i=0;
浮子辐射[24]、雨水[24]、能量、能量、pt、p、e、ep、ee;
int main()
{
文件*arq;
arq=fopen(“file2.txt”,“r”);
if(arq==NULL){
printf(“错误!无法打开文件!\n”);
getchar();
}
否则{
printf(“文件打开…\n”);
printf(“读取文件…\n”);
而(!feof(arq)){
fscanf(arq、%d%f%f\n、&hour[i]、&radio[i]、&rain[i]);
i++;
}
printf(“打印板面积m^2\n”);
scanf(“%d”和“&a”);
printf(“以瓦特/M^2\n为单位的类型最大板桥”);
scanf(“%f”、&p);
ep=p*efi;//计算标准效率后的板电位
printf(“电路板的总效率为%.2f%”,ep);
pt=a*ep;
printf(“总板电位为%.2f\n”,pt);
int i;
对于(i=0;i<24;i++)
{
能量=(pt*辐射[i]);//产生的能量
energk=(浮点)energ/1000;//以千瓦为单位的发电量
printf(“在%d hoour时,平均辐射量为%.2f KW/m^2\n%.2f mm降雨\n,板产生的总能量为%.2f KW\n”,i,辐射[i],降雨[i],能量k);
}
scanf(“%d”和“&a”);
}
fclose(arq);
}

步骤1:检查
fscanf(arq、%d%f%f\n“、&hour[i]、&radio[i]、&rain[i])的返回值-看看是不是3。谁或什么文本建议使用
while(!feof(arq)){
?为什么代码循环25次?最好防止第25次迭代。我的教授=/没有意识到第25次!非常感谢hintthank的帮助,但出于某种原因,程序在printf之后立即停止(“电路板的总效率为%.2f%”,ep);pt=a*ep;printf(“电路板总电位为%.2f\n”,pt)由于某些原因,“for”命令未执行尝试此操作。不知道您的版本中的问题在哪里,因为无法看到您的代码非常感谢我发现了为什么它看不到for命令的问题,我调整了“WHILE”命令并与“for”合并非常感谢!当(!feof(arq)){fscanf(arq,%d%f%f\n“,&hour[i],&radio[i],&rain[i]);i++;这个命令与for(i=0;i<24;i++){energ=(pt*radiation[i]);//产生的能量energk=(float)energ/1000;//产生的能量,单位为千瓦
#include <stdio.h>

#define efi  0.83 //83% , standart solar cell eficiency

int h,a;


int potency (int x, int y, int z)
{
    return (x*y*z);
}

int hour[24], i=0;
float radiation[24], rain[24], energ,energk,pt,p,e,ep,ee;



int main()
{



   FILE *arq;

   arq = fopen("file2.txt", "r");
   if(arq == NULL) {
      printf("Error! unable to open file! \n");
      getchar();
   }
   else {
      printf("File open... \n");
      printf("Reading file...\n");
      while (!feof(arq)){
         fscanf(arq,"%d %f %f\n", &hour[i], &radiation[i], &rain[i]);
         i++;
      }
    printf("Type desired hour \n");
      scanf("%d", &h);
    printf("type board area m^2\n");
      scanf("%d", &a);
    printf("type maximum board pontency in WATTS/M^2\n");
      scanf("%f", &p);
      ep=p*efi; //Board potential after calculated its standart eficiency
    printf("Total eficiency of the board is %.2f %", ep);
    pt=  a*ep;
    printf("Total board potential is %.2f\n", pt);

        energ= (pt*radiacao[h]); // generated energy
        energk=(float)energ/1000; // generated energy in kw


      printf("At %d hoour, there is an average of %.2f KW/m^2 radiation\n %.2f mm of rain\n and the total energy produced by the board will be %.2f Kw \n ", hour[h], radiation[h], rain[h], energk);
      printf("\n\n\n press <enter> to finish");
      getchar();
   }
   fclose(arq);
}
 #include <stdio.h>

  #define efi  0.83 //83% , standart solar cell eficiency

  int h,a;


  int potency (int x, int y, int z)
  {
     return (x*y*z);
 }

 int hour[24], i=0;
 float radiation[24], rain[24], energ,energk,pt,p,e,ep,ee;



int main()
{



  FILE *arq;

  arq = fopen("file2.txt", "r");
  if(arq == NULL) {
     printf("Error! unable to open file! \n");
     getchar();
  }
  else {
     printf("File open... \n");
     printf("Reading file...\n");
     while (!feof(arq)){
        fscanf(arq,"%d %f %f\n", &hour[i], &radiation[i], &rain[i]);
        i++;
     }
     printf("type board area m^2\n");   
     scanf("%d", &a);
     printf("type maximum board pontency in WATTS/M^2\n");
     scanf("%f", &p);
     ep=p*efi; //Board potential after calculated its standart eficiency
     printf("Total eficiency of the board is %.2f %", ep);
     pt=  a*ep;
     printf("Total board potential is %.2f\n", pt);

     int i;
     for(i = 0; i < 24; i++)
     {
       energ= (pt*radiation[i]); // generated energy
       energk=(float)energ/1000; // generated energy in kw


       printf("At %d hoour, there is an average of %.2f KW/m^2 radiation\n %.2f mm of rain\n and the total energy produced by the board will be %.2f Kw \n ", i, radiation[i], rain[i], energk);

     }
     scanf("%d", &a);
  }
  fclose(arq);
}