2016-11-13 5 views
0

これは私の「電話帳」プログラムの一部です。プログラムは変数内のデータと一致しません

void viewone(){ 


    char name[25], fname[25]; 

    int n, ncheck, op; 

    fp = fopen("Phonebook.txt","r"); 

    printf ("\n Search by : \n 1: Name\n 2: Phone Number\n"); 
    printf ("Enter option : "); 
    scanf ("%d",&op); 

    switch(op){ 

     case 1: 
      printf ("\n Enter Name : "); 
      scanf ("%s",name); 

      fscanf(fp, "%s %d", fname, &ncheck); 

      while (!feof(fp)){ 

       printf ("\n\n %s \n\n",fname); 

       if (fname == name){    \\ Problem in here 

        printf ("\n\n Contact Found...\n"); 

        printf (" %s +880%d", fname, ncheck); 

        break; 

       } 

       else{ 

        fscanf(fp, "%s %d", fname, &ncheck); 

       } 

       if (feof(fp)){ 

        printf ("\n\n Contact Not Found...\n\n"); 

       } 

      } 

      menu(); 

      break; 

     case 2: 

      printf ("\n\n Enter Contact Number (+880) : "); 
      scanf ("%d",&n); 

      fscanf(fp, "%s %d", fname, &ncheck); 

      while (!feof(fp)){ 

       if (ncheck == n){ 

        printf ("\n\n Contact Found...\n"); 

        printf (" %s +880%d\n", fname, ncheck); 

        break; 

       } 

       else{ 

        fscanf(fp, "%s %d", fname, &ncheck); 

       } 

       if (feof(fp)){ 

        printf ("\n\n Contact Not Found...\n\n"); 

       } 

      } 

      menu(); 

      break; 

     default: 

      printf ("\n Wrong option...\n\n"); 

      viewone(); 

      break; 
     } 

    } 

マークされた行になると、プログラムは 'name'文字と一致するまで 'fname'文字をファイルで検索する必要があります。しかし、彼らは一致しても、何も起こらず、プログラムはまだ続きます。そして最後に、それはelseステートメントで言われたことをします。私の質問は、なぜこれが起きているのか、どうすれば修正できるのでしょうか?

私の電話番号で検索すると、私のプログラムは完全に動作します。しかし、それはなぜ文字で起こっていないのですか?

+2

プラス:なぜfeof()が常に間違っているの可能な複製。 http://stackoverflow.com/q/5431941/905902 – wildplasser

答えて

-1

比較文字列は==ではありません。代わりにこのような文字列比較関数を使用してください

strcmp(fname,name) 
+1

おそらく参考になります –

+0

これは助けることができます:https://www.tutorialspoint.com/c_standard_library/c_function_strcmp.htm – user5434084

+0

Ooohhh ...私はTutorialsPointのリファレンスはうまくいくでしょう...改善しましたか? –

関連する問題