2013-02-17 148 views
0

我試圖逐個讀取TXT文件字符並將其寫入 output.txt文件每行中的一個字符的ASCII編號。逐個讀取文件中的字符

任何時候,我的代碼收到EOF ASCII字符我不能讀任何其他。 (這也發生在SUB字符 - 在DOS意味着EOF)

這是我的代碼(.C):

while (source_size > 0) { 
    ch = fgetc(in_file);  //reading file full of ASCII chars 
    fprintf(p, "%d\n", ch); // write num to output.txt 
    source_size--; 
} 

感謝

+1

'EOF'不是一個ASCII字符。 – 2013-02-17 08:02:09

回答

1

您不指定操作系統或其他信息,但DOS這個詞表示您在Windows上。可能你打算以二進制模式打開文件(例如「FILE * in_file = fopen(name,」rb「)」)。

+0

如果您使用Microsoft C,則此鏈接(http://msdn.microsoft.com/en-us/library/yeby3zcb%28VS.71%29.aspx)指定在「r」模式下打開時完成的翻譯而不是「rb」。 – 2013-02-17 08:10:37

+0

謝謝, 二元模式解決問題:) – user2080006 2013-02-17 08:15:34

1

如何??????

while((ch = fgetc(in_file)) != EOF) 
    fprintf(p, "%d\n", ch); 
+1

此外,請確保ch是一個int並且(也許令人驚訝的)不是char。 – 2013-02-17 07:43:27

+0

絕對@ ThomasPadron-McCarthy – 2013-02-17 07:44:37

+0

我最初嘗試過,這是問題,當fgetc()收到EOF時,我無法讀取其後的其他char。 ch是一個整數。 – user2080006 2013-02-17 08:06:55