2012-03-28 58 views
0

ifstreamでファイルを開こうとすると、コンパイルは正常ですが、ファイルは開かれません。 この例のファイルは存在しませんが、ifstream * s *は*のためにファイルを作成する必要があります。C++ ifstreamはファイルを開けません

私は動作するはずですが、ファイルを開けたり作成したりしないサンプルコードがあります。 "foo.txt"私は行方不明の何か、または私のIDEはちょうど台無しですか? 私はここのコードです、ところで

おかげ

をVisual Studioの2008 VC++を使用しています:

#include <stdio.h> 
#include <iostream> 
#include <fstream> 
#include <string> 

using namespace std; 

int main(){ 
    ifstream in; 
    string hold; 
    in.open("foo.txt",ios::in); 
    if(!in){ 
     cerr << "Couldn't open file!" << endl; 
    } 
    in >> hold; 
    cout << hold << endl; 
    system("pause"); 
    return 0; 
} 
+0

する必要がありますか? Hrm。あなたの入力ファイルを作成したとしても、そのファイルから何を抽出すると思いますか? – mkb

+0

パスが良好であることを確認しましたか?完全なパスを使用してみますか?また、おそらく問題はありませんが、 'if(!in good()) 'を試してください。 – Lander

+6

* input *ストリームはファイルを作成しません。 –

答えて

1

問題はアダムリスが述べたように、あなたが、代わりに出てストリームのストリームで使用しているですが、 (ios::inではなくios::out)。 return 0;の前にファイルを閉じて、バッファのすべてが実際にファイルに書き込まれていることを確認する必要もあります。

+1

'ofstream'の場合にのみ問題はありませんか? – Lander

+1

OPのコードは 'in 'に書いているようではありません。 –

+0

@Lander実際には正しいかもしれません。私はifstreamとofstreamを混ぜる傾向があります。 –

1

open関数は、ios::inモードでファイルを作成しません。 ios::outを使用する必要があります。

関連する問題