2011-07-23 17 views
-1
#include <iostream> 
#include <string> 
#include <fstream> 
#include <cstring> 

using namespace std; 

int main(){ 
    char a; 

    cout << "give me the filename: "; 
    cin >> filename; 

    ifstream caroll; 
    caroll.open(filename.c_str()); 

    while (a=caroll.get() && !caroll.eof()){ 
    cout << a << " "; 
    } 

    caroll.close(); 
} 

私は奇妙な文字でいっぱい出力しています。彼らは2 0と2 1で満たされた小さな四角形のようです。ifstreamの出力に奇妙な文字があります

+0

出力はデバッガが与えるだろう何かのように見えること。 –

+0

出力は正常で、デバッグモードで期待されています(あなたは言及していませんでした!また、すべての空白には何がありますか? –

+0

私はそれらの文字を表示できなかったので編集しました。上記を参照してください –

答えて

5

警告レベルをコンパイルしてください。バグがここにあります:あなたは割り当ての周りに括弧を追加する必要が

while (a = (caroll.get() && !caroll.eof())) { 
     ^       ^

while (a=caroll.get() && !caroll.eof()) { 

これは以下のように解釈され

while ((a = caroll.get()) && !caroll.eof()) { 
    ^   ^

GCCはこれについて警告しています。

(注意:コンパイルしたコードを投稿してください、filenameはあなたのサンプルの中で宣言されていない、とあなたはstringを含むべきであるとき、あなたはcstringを含めている。)

+0

それthat.Thanks .... –

関連する問題