2016-11-21 52 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

'i'沒有在你的榜樣初始化。不要以爲它會是0. –

+0

它看起來像我只是從文件中讀取一行。沒有循環。 –

+1

@JimBaldwin更少,1個字符。 –

回答

3

我認爲你的意思(在線87):

while (i < vert_count)