1樓:網友
我在vc++上執行了一下你的程式,再輸入檔名後就會出現警告,我覺得你這個程式幾個地方都有問題,在char* getfilename(void)函式中你定義了一個靜態變數static char file[20]; 那就不用再在後面返回file,因為這是一個全域性變數,在其它函式中可直接使用,還有一個致命的bug是你在檔案都還沒有建立就呼叫了readfile,在這個函式中有fp=fopen(file,"r");fscanf(fp,"%d",&這兩句語句,其中第一條是以讀的方式開啟file,如果你在後面加入if(fp==null)這一句,它一定會顯示"檔案開啟失敗!
",因為檔案根本就不存在,所以後面的語句也就根本沒作用了。我覺得你在main函式里應該先呼叫writedistancematrix進行檔案寫入,還有就是你在寫入檔案時已經呼叫了getfilename函式得到了檔名,由於你是用靜態變數儲存的,在readfile函式中不能在呼叫getfilename,而直接使用file變數。
呵呵,不好意思看了這麼就我不知道你這個程式到底想實現什麼樣的功能,所以對你這個程式的思路不是很理解,不能提出跟多的幫助,我只是站在語法上提出了一點建議。
2樓:ghos丶
貌似我剛的這個。我給你多說一句吧,char* getfilename(void)
裡面輸入的是 檔案的具體路徑。比如:d:
\ 什麼的,而且他是用的c++寫的,在c的編譯器裡面會出點小毛病, 不過我給你該過來了,而且你看他的fscanf函式,第一次讀取的是fscanf(fp,"%d",&即是一個數字(城市的個數),然後讀取的是。
for(i=0;i<;i++)既是城市的經緯度,什麼的,所以你那樣輸入是不正確的。
C語言問題,C語言問題C語言問題
選a首先,空格也是一種字元,b d選項分別把空格賦給了c1,c1 其次,c選項不完整,排除 不僅a這樣,10a20b也是可以的。 聽不清啊 答案a 10a 20b cr 是正確的。因為scanf d c 時,會忽略數字前面的空格,遇到非數字字元就會結束讀取 非數字字元會留待下一次讀取,即被後面的 c...
c語言!!求助,C語言求助!!!
沒什麼問題,兩題給出的答案都是正確的。第2題 後面按c語言要求帶上規定的字元或數字,構成轉義字元,因此要想將 賦給字元變數ch,需要定義為 ch 而不是ch 選項a是錯誤的。其餘選項都是正確的。選a第9題 011表示八進位制數,轉為十進位制數是9,執行printf語句,a,是a先自增1 9 1 10...
C語言問題,C語言問題
符合,相當於一個字元,ascii字元可以直接轉成short整型數字。101 不符合,這是一個字串,不能作為常數。不符合,因為 會對雙引號轉義,找不到另一個雙引號。會出錯。而且就算是 也不符合,因為編譯器會把它理解成一個字串,而非單個字元。e3不符合。019不符合,0開頭代表8進位制數,不能出現9。0...