2010-07-09 20 views
1
function() 
{ 
FILE *ptr; 
ptr = fileopen(file1.txt) 
fprint(ptr, some text) //print to file 1 

    if(second file needed) 
    { 
     ptr = fileopen(file2.txt) //open a second file, assign to same file pointer 
     fprint(ptr, some text) //print to file 2 not working here? 

    } 

} 

編輯:
不打印到第二個文件。不過,fprint()不返回負值。我可以爲第二個文件分配相同的文件指針嗎?

+0

請在提問有關C++的問題時使用C++代碼,而不是僞代碼。 – 2010-07-09 01:13:00

+2

好的,對不起。 – 2010-07-09 01:14:19

+0

當然有人問你爲什麼要使用C I/O機制,而不是更強大和方便的C++ iostreams。 – 2010-07-09 01:16:48

回答

4

是的,你可以,但是,你應該確保在這樣做之前關閉第一個文件。

+0

是它爲什麼不打印到第二個文件? – 2010-07-09 01:11:41

+0

@Tommy:這不是爲什麼它不打印到第二個文件,但是沒有辦法真正告訴你寫入第二個文件後發生了什麼,因爲發佈的示例不是真正的代碼。如果您發佈了一小段真實代碼來顯示問題,您將得到一個解決您的實際問題的答案。 – 2010-07-09 01:26:53

2

你可以這樣做,但問題是你失去了訪問第一個打開文件的方式(即使只是關閉它)。

+0

很有意思,如果打開第二個文件,則不需要再次訪問。 – 2010-07-09 01:12:06

+0

@Tommy:但第一個文件仍應該關閉。也許在你打開第二個文件之前關閉(正是你想要或者需要做的事情可能取決於你在第二個文件打開嘗試失敗時可能會發生什麼)。 – 2010-07-09 01:23:39

1

是的,所有的指針都只是保存內存地址的變量。起初你的指針保存第一個內存地址fileopen(我猜你可能意思是fopen雖然?)返回。稍後您可以在其中放入不同的內存地址。

相關問題