2017-07-25 45 views
0

我正在閱讀Robert Lafore的」面向對象的程序設計「一書。在」流和文件「一章中,有時文件打開時使用for實例ifstream is("edata.dat", ios::binary);有時語法file.open("a:test.dat");(在創建對象file之後)。語法ifstream is("edata.dat", ios::binary);已經很好地解釋了,我理解它,但是他沒有解釋什麼是a:意味着什麼或者爲什麼一種情況比另一種情況更可取。谷歌它,但我不知道要搜索什麼。任何幫助,將不勝感激。C++:爲什麼打開文件使用.open(「a:

+2

'a:'指定Microsoft和其他一些操作系統上的軟盤驅動器。我強烈懷疑這不是一本好書。 –

+0

@NeilButterworth自從我閱讀了大約600頁並且我喜歡它到目前爲止,這是令人失望的閱讀。但感謝回覆,我想最簡單的事情就是現在忽略它。 – Hunter

+1

文件名的使用取決於操作系統。第一種形式使用與我熟悉的平臺上的當前工作目錄相關的文件名。我使用的一些平臺(基於POSIX的平臺)的第二種形式也是如此。我*認爲*在Windows上,'a:'部分表示一個「驅動器」(原來是指示所有PC中將出現的軟盤的字母),並且它看起來像某個名稱與某個特定驅動器相關聯的名稱。 –

回答

2

a:test.dat是在DOS和Windows系統上的有效路徑,它意味着「文件名爲'test.dat'對當前驅動器'a'的目錄。

DOS和Windows上的驅動器「a」和「b」保留給軟盤驅動器。現代計算機通常不再配備軟驅,因此這些驅動器無法訪問。即使是現代Windows,它們仍然是保留的,這就是爲什麼第一個存儲文件系統以「c」開頭的原因。

如果您將a:test.dat替換爲c:test.dat,則會在「c」驅動器的當前目錄中引用 「test.dat」文件。

可以使用_chdir()函數更改Windows上的當前目錄。默認情況下,它是驅動器的根目錄。

相關問題