2010-08-22 144 views
1

我想逐行讀取一個txt文件。我收到錯誤「設備未準備好」。我無法理解問題是什麼?代碼如下:從文件行逐行讀取

#include<stdio.h> 
#include<stdlib.h> 
int main(int argc, char **argv) 
{ 
    char command[100]; 
    char line[10]; 
    FILE* fp = fopen("input.txt","r"); 

    while (fgets(line, sizeof line, fp) != NULL) 
    { 
    puts(line);         
    } 

    getchar(); 
    return 0; 
} 

有人可以告訴我我在做什麼錯誤嗎?提前致謝。 操作系統:windows 7; 編譯器:dev C++

+0

「設備未準備就緒」表示您有硬件問題,無法讀取CD等。 – jpalecek 2010-08-22 20:20:05

+0

怎麼回事?我的其他代碼工作得很好。 – narayanpatra 2010-08-22 20:27:09

+0

你有沒有試過在gdb下運行它(可能使用cygwin)? – alternative 2010-08-22 22:51:58

回答

2
  • Ditch Dev-Cpp。它已經過時了,還有更好的選擇,所有這些都是免費的,如啤酒(netbeans,code :: blocks,MS Visual C++ Express,eclipse)
  • 檢查你的錯誤。如果出現任何問題,請確保您的程序儘早並大聲地失敗。
  • 閱讀所調用的每個庫函數的文檔,以確保正確使用它們,並且您使用的是正確的檢測和處理錯誤的方法
  • 驗證您正在嘗試讀取的文件(最重要的是,assert()fp不是NULL
  • '代碼'是廉價間諜電影中的代理人交換訪問重要信息的祕密。您在文本編輯器或IDE中輸入的內容稱爲「代碼」,並且它不是可數的,因此您不使用複數形式。
+0

我遵循你的第一條建議。讓我在netbeans中檢查我的代碼。 – narayanpatra 2010-08-22 20:51:07

0

您的代碼在我的電腦上正常工作。所以錯誤可能來自您的硬件或其他相關的東西...

我的系統是Redhat和編譯器是gcc 3.4.6!