鵬帆 發問時間: 電腦與網際網路程式設計 · 1 0 年前

有關Warning的問題

[Warning] passing arg 1 of 'scan_file'from incompatible pointer type

請問這是什麼呢?

我的程式還是可以跑,但是看到這個覺得毛毛的...

已更新項目:

/*程式開始*/

/*標頭檔*/

#include<stdio.h> /*提供檔案處裡的標頭檔*/

/*定義常數*/

#define WORD_SIZE 20 /*字數長度*/

/*階層結構*/

typedef struct{

int ID_number[WORD_SIZE]; /*家庭號碼*/

int income[WORD_SIZE]; /*收入*/

int household[WORD_SIZE]; /*家族成員*/

}data;

2 個已更新項目:

/*定義函數*/

void welcome_print(void); /*歡迎題詞*/

void scan_file(char *file_name);/*開啟檔案*/

3 個已更新項目:

/*主程式*/

int main(void)

{

/*定義變數*/

char file_name[WORD_SIZE];/*存放檔案名字的字串*/

data datas[WORD_SIZE];

/*程式主體*/

welcome_print();

scan_file(&file_name);

getch();

return 0;

}/*主程式結束*/

4 個已更新項目:

/*函數:歡迎題詞。

*無任何變數在此傳輸。*/

void welcome_print(void)

{

printf("歡迎使用本程式。本程式會整理您所導入的家庭資料,");

printf("\n並列出平均以下家庭和貧窮家庭,以分辨他們的不同。\n");

printf("\n請輸入檔案名稱:");

}

5 個已更新項目:

/*函數:開啟檔案。

*使用指標傳入檔案名稱,無傳出。*/

void scan_file(char *file_name)

{

FILE *input;/*定義檔案*/

/*開啟檔案*/

scanf("%s",file_name); /*讓使用者輸入檔名*/

input = fopen(file_name,"r"); /*開啟使用者指定檔案*/

6 個已更新項目:

/*開啟失敗*/

if(input == NULL)/*開啟檔案失敗時的傳回值*/

{

printf("\n不好意思,檔案開啟失敗了。\n");

printf("輸入任意鍵結束程式。");

getch(); /*擷取一個字元來暫停程式,以免使用者看不見離去訊息*/

exit(1); /*強制結束程式*/

}

}

7 個已更新項目:

以上是內容...

因為還沒寫完,所以沒用到的函數請忽略他...

1 個解答

評分
  • Sara
    Lv 5
    1 0 年前
    最佳解答

    應該是你的scan_file()的第一個參數傳入值有問題吧...

    incompatible pointer type ← 表示不可比較的指標形態?

    把有關的程式碼寫上來可能比較容易知道哪裡有問題吧 @﹏@

    2006-12-17 20:45:22 補充:

    在main裡面呼叫函式的地方改成 scan_file(file_name);就可以了

    傳陣列的時候不必加& ...

還有問題?馬上發問,尋求解答。