0

私は Java 開発者なので、ファイルを操作しようとすると、File クラスのオブジェクトをインスタンス化します。デフォルトでは、オブジェクトには などのメソッドがありますgetAbsoluteFile()

ただし、C++ では、 thisによると、stdio.h ヘッダー ファイル内で定義されている FILE という型を使用します。これはオブジェクトではなく型であるため、メソッドを持たないため、どのように操作するのでしょうか?特に、FILE の名前を変更するにはどうすればよいでしょうか?

Java とは異なる場合、C++ でメソッドを持つオブジェクトを持つことと同等のものは何ですか (ファイルのシナリオから判断すると、異なるようです)?

4

3 に答える 3

3

FILEは C 標準ライブラリからのもので、下位互換性のために C++ に含まれています。C は OOP をサポートしていないため、メソッドはまったくありません。FILE代わりに、フリー関数を使用して s を操作します。

リンクしたサイトのサイドバーを見ると、cstdioヘッダーから機能の一覧が表示されます。f で始まる名前を持つほとんどの関数はFILE*、最初のパラメーターとして a を取ります。ファイルの名前を変更するには、 renameを使用できます。は必要ありませんFILE*。2 つのパス (のようにchar*) を取ります。

ファイル I/O を行う C++ のより多くの方法は、代わりにストリームを使用することです。

于 2013-02-12T15:00:42.187 に答える
2

あなたは2つの異なるものを比較しています。

Java では、ファイルはファイルシステム内のものを記述するオブジェクトであり、ファイル内のデータを変更/追加するには、ファイルからストリームを作成する必要があります。

C では FILE は開いているファイルへのハンドルであり、ファイル内のデータを変更するために使用されます。C++ では、実際にはIOStreamsを使用する必要があります。C および C++ 標準には Java ファイルに相当するものはありません。最も近いものはBoost Filesystem ライブラリです。

于 2013-02-12T15:11:23.973 に答える
0

ファイルの名前を変更するのではなく、ファイルの名前を変更します。ファイルの名前を変更するという関数がありrenameます。C++ はオブジェクトを持たない C から継承したため、オブジェクトに対しては動作しません。これは、古い名前と新しい名前をパラメーターとして受け取る単なる無料の関数です。

#include <stdio.h>
rename("oldFileName.txt", "newFileName.txt");
于 2013-02-12T14:59:11.840 に答える