2010-11-19 64 views
0

嗨大家可以告訴我這個問題的答案嗎? 我創建了一個簡單的txt文件。它包含只有兩個單詞和單詞是你好單詞根據我研究計算機使用ascii代碼將文本存儲在磁盤或內存中。在ascii代碼中,每個字母或符號用一個字節表示或用簡單的單詞表示一個字節用於存儲一個符號。 現在的問題是,當我看到文件的大小時,它顯示11個字節我瞭解9個字節的單詞一個字節的空間使總數爲10,然後爲什麼它顯示11個字節的大小。我嘗試了不同的東西,如改變文件的名稱用盡可能最短的名字或最長的名字來保存,但它並沒有改變總的存儲空間 所以任何機構都可以解釋它爲什麼會發生?我試過這個窗口或者Linux(Ubuntu.centos)系統的結果是一樣的。電腦基礎問題

+0

不想被光顧,但你確定它說「你好詞」而不是「你好世界」? – charisis 2010-11-19 07:37:05

回答

2

如果你想看到文件的內容,你可以使用linux下的「od」命令來執行它的八進制轉儲。很可能你會看到一個CR(回車)和一個LN(換行)。 文件的名稱與他的大小無關。

路易斯

3
pax> echo hello word >outfile.txt 

pax> ls -al outfile.txt 
-rw-r--r-- 1 pax pax 11 2010-11-19 15:34 outfile.txt 

pax> od -xcb outfile.txt 
0000000 6568 6c6c 206f 6f77 6472 000a 
      h e l l o  w o r d \n 
     150 145 154 154 157 040 167 157 162 144 012 

pax> hd outfile.txt 
00000000 68 65 6c 6c 6f 20 77 6f 72 64 0a     |hello word.| 
0000000b 

按照上面,你存儲"hello word"換行符。總共有11個字符。如果您想換行,你可以使用類似的echo-n選項(不添加新行):

pax> echo -n hello word >outfile.txt 

pax> ls -al outfile.txt 
-rw-r--r-- 1 pax pax 10 2010-11-19 15:36 outfile.txt 

pax> od -xcb outfile.txt 
0000000 6568 6c6c 206f 6f77 6472 
      h e l l o  w o r d 
     150 145 154 154 157 040 167 157 162 144 

pax> hd outfile.txt 
00000000 68 65 6c 6c 6f 20 77 6f 72 64     |hello word| 
0000000a 
+0

+1樣本輸出 – Zeke 2010-11-19 07:38:38

+0

@paxdiablo這是一個很好的命令知道!我還看到有人說光盤上的文件/字符串不是空終止的(這會佔用額外的字節)?這是真的? – ubiquibacon 2010-11-19 07:39:48

+0

'hd'也默認產生清除輸出(十六進制,然後是可讀的字符)。 – 2010-11-19 07:41:58

0

你有沒有在文本文件中的新行(\n) ?僅僅因爲這個角色不能被看到並不意味着它不在那裏。