線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2295
推到 Plurk!
推到 Facebook!

請問如何用feof()判斷是否讀到檔案結尾了?

答題得分者是:slanla2007
thumbhero
一般會員


發表:2
回覆:1
積分:0
註冊:2007-10-12

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-10-13 00:02:13 IP:140.112.xxx.xxx 訂閱
請問各位,以下是我的程式節錄,
也就是讀入檔案後將字串轉成ascii,
但是程式debug會停在 while那行...

是不是裡面的feof寫錯了呢?
煩請高手指導一下,謝謝!!

[code cpp]
void __fastcall TForm1::Button1Click(TObject *Sender)
{
FILE *file1;
char buffer;

if(OpenDialog1->Execute())
{
file1 = fopen("OpenDialog1->FileName", "R" );

while( fscanf(file1,"%c", &buffer)!= EOF ) //程式停在這兒
{
int gry = int(buffer); //把buffer裡的字串轉成ascii碼儲存
}
fclose(file1);
}
[/code]
}
jow
尊榮會員


發表:66
回覆:751
積分:1253
註冊:2002-03-13

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-10-13 09:23:49 IP:123.193.xxx.xxx 訂閱
if((file1 = fopen(OpenDialog1->FileName, "r" ))!=NULL){

下列程式碼測試正常

[code cpp]
void __fastcall TForm1::Button2Click(TObject *Sender)
{
ListBox1->Items->Clear();
//D:\\TEST.TXT的內容為 0123456789
FILE *file1;
char buffer;
AnsiString FILE_NAME = "D:\\TEST.TXT";
if(FileExists(FILE_NAME)){
if((file1=fopen("D:\\TEST.TXT", "r" ))!=NULL){
while(fscanf(file1,"%c", &buffer)!=EOF){
int gry = int(buffer);
ListBox1->Items->Add(gry);
}
fclose(file1);
}
}
}
[/code]
編輯記錄
jow 重新編輯於 2007-10-13 09:24:54, 註解 無‧
jow 重新編輯於 2007-10-13 09:28:25, 註解 無‧
jow 重新編輯於 2007-10-14 01:13:49, 註解 無‧
slanla2007
一般會員


發表:3
回覆:4
積分:6
註冊:2007-10-04

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-10-13 18:35:02 IP:59.127.xxx.xxx 訂閱
試試看
file1 = fopen("OpenDialog1->FileName", "R" );

file1 = fopen(OpenDialog1->FileName.c_str(), "r" );

編輯記錄
slanla2007 重新編輯於 2007-10-13 18:35:22, 註解 無‧
系統時間:2024-05-02 18:04:29
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!