2014-12-05 23 views
0

我正在開發一個軟件,我需要插入學生並檢查是否同一個學生已經在系統中註冊。如何比較數字與myfile中的數字

int setNumAluno()  //Definir num de aluno 
{ 
    int num; 
    printf("\n"); 
    printf("Numero de Aluno: \n"); 
    scanf("%d", &num); 
    printf("A verificar se existe o aluno\n"); 
    checkstudent(num); 
    return num; 



} 

void checkstudent(int num)//Metodo responsavel por verrificar no ficheiro se o mesmo existe 
{ 
    int numerofile=0; 
    int r = 0; 

    while (numerofile != EOF) 
    { 
     numerofile = fscanf(fp, "%d", &r); 
     if (num == numerofile) 
      printf("Numero existe"); 
     else if (num != numerofile) 
      setNomeAluno(); 

    } 

} 

我試過實施一個while循環,但我不能檢查數字是否已經存在於我的文件中。當我執行fscanf()指令時,該文件被調用,但我無法檢查是否已經有該號碼的成員。我的代碼如何執行,以驗證學生是否已經存在?

+0

你在哪裏打開你的文件嗎?你的文件是怎樣的? – zoska 2014-12-05 17:43:57

+0

陳述明顯,但我必須...知道它不存在,你必須檢查*所有*條目。 – 2014-12-05 17:47:10

+0

我通過這些指令打開我的文件FILE * fp = fopen(filename,「r」); – 2014-12-05 17:49:28

回答

1

這樣來做:

  1. 使用fopen打開該文件,並創建一個FILE指針。
  2. 使用fread將文件的內容讀入緩衝區。
  3. 使用strtol將緩衝區中的數字轉換爲long int;請注意,還有其他功能可用於其他類型的轉換。
  4. 使用fclose關閉文件和釋放FILE指針