2016-11-21 10 views
-1

C++を使ってファイルを文字配列に読み込むコードを書いています。私は空白文字をスキップしようとしましたが、出力配列にスペースと改行があります。C++の文字配列にファイルを読み込む

これは、文字配列として宣言されたラベルのクラス内の関数です。

 //Read the label file 
80  this->label = new char[vert_count+1]; 
81  std::ifstream file1; 
82  file1.open(label_file); 
83  if(file1 != NULL) 
84  { 
85   char temp; int i = 0; 
86   std::cout << "Label file opened successfully" << std::endl; 
87   if(i< vert_count) 
88   { 
89    file1.get(temp); 
90    if(temp != ' ' && temp != '\n'&& temp != '\t') 
91    { 
92     label[i] = temp; 
93     i++; 
94    } 
95   } 
96   label[vert_count] = '\0';//putting null character to terminate 
97   file1.close(); 
98  } 
99  else   
100   std::cout << "label file cannot be opened\n"; 
101  for (int i = 0; i< vert_count; i++) 
102   std::cout <<label[i]; 

a 
b 
c 
d 
e 
f 
1 
2 
H 
M 
O 

以下のように私の入力ファイルは、私が取得していますが、出力開始時に文字の束で、その後、ホワイトスペースのみ改行形式です。

+0

'。それが0になるとは思わないでください。 –

+0

ファイルから1行しか読み込まないように見えます。ループはありません。 –

+1

@JimBaldwinさらに少なく、1文字。 –

答えて

3

私はあなたが(ライン87上)のものだと思う:あなたの例では初期化されていないi`

while (i < vert_count) 
関連する問題