2014-02-08 53 views
0

我需要你的幫助。我一直堅持這個問題幾個小時,找不到可以幫助我的答案。我一直試圖使用fgets從文本文件中提取特定的字符串,所以我可以將其與用戶輸入進行比較。但顯然,使用的代碼配置提升了整個文本文件的內容。我只需要一個字符串,我可以使用stricmp與用戶輸入進行比較。謝謝!使用文本文件中的特定字符串與用戶輸入進行比較

此代碼的目的是識別用戶輸入的用戶名是否已經存在於.txt數據庫中。

#include<stdio.h> 
#include<math.h> 
#include<string.h> 
#include<conio.h> 

FILE *myFile; 
int main() 
{ 
     FILE *ptr_file; 
     char userName[31]; 
     char userNameDatabase[31]; 



     printf("Please enter your username: "); 
     fflush(stdin); 
     gets(userName); //user input 



     ptr_file = fopen("MainDatabase.txt","rt"); //the filename 
     if (!ptr_file) 
     { 
     return 1; 
     printf("\nWARNING, MAIN DATABASE FILE MISSING"); 
     } 
     while (fgets(userNameDatabase,sizeof(userNameDatabase), ptr_file)) 
     { 

      if (stricmp(userName,userNameDatabase)== 0) 
      { 
      printf("\n\nYES!!!"); // For testing to see if my code can get into this part 
      } 
     } 
} 

回答

0

仔細看看get()和fgets()會返回什麼......它將不僅僅是可見字符。即

fgets函數從輸入流參數中讀取一個字符串,並將其存儲在str中。與fgets從當前流 位置和包括第一換行符

所以你可能比較「佛瑞德\ n」個與讀取字符「佛瑞德\ r \ n」個

相關問題