鱼C论坛

 找回密码
 立即注册
查看: 2033|回复: 1

[已解决]哪位大神给看一下这个题目,谢谢!!

[复制链接]
发表于 2021-6-14 10:52:27 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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

注:函数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[1];
         char s[100];
         double *value = 0.0;
         int zeilen == 0;                                                                                                                              0前面一个=

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

         /Datei &#246;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;
}






最佳答案
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[1];
         char s[100];
         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;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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[1];
         char s[100];
         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;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-21 14:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表