2011-12-28 6 views
0

I #includeこれらのヘッダをコンパイルしません。何が問題なの?私はVisual Studio 2010、Win32 C++を使っています。はifstreamは

+3

**一般的なアドバイス:**私たちは、あなたが間違っていたかを知るためのテストケースを見てみたいです。エラーメッセージも害はありません。以下の回答は推測になります。 –

答えて

4

using namespace std;はコードの先頭に置くことができるので、標準のC++のものは完全に修飾する必要はありませんが、多数の開発者が悪いと考えています。

は、私は単純にコードが長くなりstd::と標準のもの、接頭辞:

std::cout << "Hello, world.\n"; 

をが、向かい合った名前空間の衝突トラブルの私を続けています。

次転写物は、動作中のstd::接頭辞を使用することを示しています

$ cat testprog.cpp 
    #include <iostream> 
    #include <fstream> 

    int main (void) { 
     int n; 
     std::ifstream inFile("input.txt"); 
     inFile >> n; 
     std::cout << "File contained " << n << '\n'; 
     return 0; 
    } 

$ cat input.txt 
42 

$ g++ -Wall -Wextra -o testprog testprog.cpp ; ./testprog 
File contained 42 
+0

ファイルに含まれる42 ... :) –

3

タイプはstd::ifstreamです。資格を与えられた名前を別の手段で範囲内に持っていない限り、それを完全に書く必要があります。

+0

私はそれを完全に忘れてしまった。ありがとう! –

関連する問題