张润丰 发表于 2021-6-14 10:52:27

哪位大神给看一下这个题目,谢谢!!

下面程序有七处错误,麻烦哪位大神给看一下程序行后面的句子是我自己写的答案,但是不全,如果有错误,希望大神给指出

注:函数strcmp比较两个字符串,如果相同就返回0,否则值就不等于0






#include <stdlib.h>
#include <stdia.h>
#include <string.h>

int main(int argc, char *argv) {                                                                                                               argv前面两个**
         FILE *fp;
         char *key = "hugo";
         char *fileName = argv;
         char s;
         double *value = 0.0;
         int zeilen == 0;                                                                                                                              0前面一个=

         //Sicherheitsabfrage:
         if (argc < 2) {
                   printf("Fehler: Falsche Anzahl an Konsolenargumenten!");
                   ret 1;                                                                                                                                  改为return 1
         }

         /Datei öffnen:
         fp = open (fileName, "r");
      
         //Sicherheitsabfrage:
         if(!fp) {
               printf("Datei kann nicht geoeffnet werden");
               return 1;
         }

         /*Anzahl der Zeilen lesen:*/
         fscanf (FILE, "%d\n", &zeilen);

         //Keys und Values verarbeiten;
      for (int i=0;i < zeilen;i++)
      {
                fscanf (fp,"%s %lf\n",s,&value);
                prints ("%s %lf\n",s,*value);                                                                                                改为printf
                if(strcmp(s,key) = 0) {//vergleichen, ob Strings identisch sind                                                0前面两个==
                        fclose (fp) ,
                        break;
                }
         }

         //Value ausschreiben;
         printf ("Der gesuchte Wert entspricht %lff ", value );                                                                     改为%lf
         return 0;
}






yuxijian2020 发表于 2021-6-14 21:45:19

#include <stdlib.h>
#include <stdia.h>
#include <string.h>

int main(int argc, char *argv) {                                                                                                               argv前面两个**
         FILE *fp;
         char *key = "hugo";
         char *fileName = argv;
         char s;
         double *value = 0.0;                                                                                        //指针没有小数值,要么double value = 0.0;要么 double* value = 0;
         int zeilen == 0;                                                                                                                              0前面一个=

         //Sicherheitsabfrage:
         if (argc < 2) {
                   printf("Fehler: Falsche Anzahl an Konsolenargumenten!");
                   ret 1;                                                                                                                                  改为return 1
         }

         /Datei öffnen:
         fp = open (fileName, "r");                                                                                                //C语言中没有名为 open 的库函数,改为 fopen
      
         //Sicherheitsabfrage:
         if(!fp) {
               printf("Datei kann nicht geoeffnet werden");
               return 1;
         }

         /*Anzahl der Zeilen lesen:*/
         fscanf (FILE, "%d\n", &zeilen);

         //Keys und Values verarbeiten;
      for (int i=0;i < zeilen;i++)
      {
                fscanf (fp,"%s %lf\n",s,&value);                                //如果上面是 double value则这里不用改,如果上面是double* value这里改为 value(不需要取址符)
                prints ("%s %lf\n",s,*value);                                                                                                改为printf                //同理,如果上面是double value,改为 value;如果上面是double* value 则这里不用改
                if(strcmp(s,key) = 0) {//vergleichen, ob Strings identisch sind                                                0前面两个==
                        fclose (fp) ,
                        break;
                }
         }

         //Value ausschreiben;
         printf ("Der gesuchte Wert entspricht %lff ", value );                                                                     改为%lf                        //这里value也和上面要一致
         return 0;
}
页: [1]
查看完整版本: 哪位大神给看一下这个题目,谢谢!!