2016-03-23 7 views
-1
#include<iostream> 
#include<fstream> 
using namespace std; 
int main() 
{ 
    char ch1; 
    char ch = 'A'; 
    fstream fileout("data.dat",ios::out); 
    fileout << ch; 
    int p = fileout.tellg(); 
    cout << p; 
} 

それは1を返しますか? 'A'はファイルの最初のバイトですか?私はtellg関数の働きを理解していないようです

+0

この場合、書き込みアクセスのみでファイルを開いたので、 'tellp'を使用してください。 * std :: basic_filebufは1つのファイルしか保持しないので、基本クラスの関数シグネチャで必要とされるopenmode引数は、通常は無視されます** ** tellg'は入力位置インジケータを返すので意味がありません。ポジション* - cppreference.com – BeyelerStudios

+0

@Olaf質問はcs.seから移行されました。 –

答えて

0

ファイルに1バイトが追加されました。 tellgは、(バイト)1となる次の読み書きが発生するファイル内の位置を返します(ただ1つの位置ポインタがあります)。

注:結果としてstreamposを使用する必要があります。

関連する問題