2012-12-02 23 views
-1

我有寫入在我的程序讀數據從一個文件的副本的陣列用於寫入

tabptr = fopen(argv[1],w+) 

做argv [1] FILE對象,我需要從同一文件讀取,但我將如何創建一個指針,可以從argv [1]讀取而不是寫入的tabptr指針?或者我只是在想這個過程。

tabptr = fopen(argv[1],w+) 
//tabptr writes to argv[1]... 
//time to declare file to read from the same tabptr wrote to 
FILE * tabptrStr = tabptr //how would i make tabptrStr readable? 
tabptrStr = fopen(argv[1],"r") //or am i just overthinking this and this will accomplish my goal? 

的argv [1]正是混淆了我,我是新的C,從C++

回答

1

你讀寫有相同FILE*到來。這是給予fopen的模式,決定您是否可以讀取和/或寫入文件。

所以,你既可以

fread(buf, 17, 1, tabptr); 

fwrite(buf, 17, 1, tabptr); 

與tabptr。

argv[1]通常是提供給程序的參數main()

int main(int argc, char **argv) 
{ 
... 
} 

在這種情況下名字,你應該閱讀和寫作使用的文件。

0

argc是傳遞給main的命令行參數的數量,argv是指向這些參數的指針數組(argv [0]是程序名)。在你的情況下,argv [1]是爲讀/寫打開的文件的名稱。

fopen的第二個參數表示文件打開模式,所以您已經打開文件進行讀取和寫入,並且tabptr可用於相同。只有注意到在w+模式下打開,如果文件已經存在,將會丟棄該文件的內容。

相關問題