2016-06-11 43 views
-6

所以我有一個txt文件是這樣的:有人可以告訴我如何修改C++中的txt文件嗎? (我真的在代碼塊工作)

1995分之313,25,16,14

4/1995 36,1,24,48

1996分之539,46,35,2

1996分之23314,16,25,12

,我想修改它看起來像這樣,在另一個txt文件:

13 25, 16,14

36,1,24,48

39,46,35,2

14,16,25,12

我也想從焦炭改造他們爲int並把它們放在一個2D矢量中。 這是我試過到目前爲止:

#include<iostream> 
#include<fstream> 
#include<cstring> 

using namespace std; 

static const int WIDTH = 10; 
static const int HEIGHT = 50; 

     int main() 
{ 
    char level[HEIGHT][WIDTH]; 

    ifstream file; 
    file.open("new.txt"); 

    for(int i = 0; i < HEIGHT; i++) 
    { 
     for(int j = 0; j < WIDTH; j++) 
     { 

     file>>level[i][j]; 
     cout<<level[i][j]; 
     }cout<<endl; 
    } 



    return 0; 
} 

而且它不`噸讀空白空間,因此它只是打亂了一切。

+0

所以,你要刪除前面的號碼,至極很容易: 用'getline()'(參考:[link](http://www.cplusplus.com/reference/fstream/fstream/))獲取整行。然後,你必須簡單地刪除從開頭到第一個空白的字符串。 是否看到您的行中始終有4個數字,因此您還可以從字符串中刪除所有「,」符號並創建一個字符串流對象。 –

回答

1

爲了收集包括空格在內的所有字符,我建議您使用「get」而不是< <運算符。

編輯:或建議

爲了適用於改變你描述函數getline,它很容易,因爲基本上每一行中看出有兩個字符串和你總是希望只保留第二個。所以你只需要做,爲每一行,文件>>「一個字符串」>>「一個字符串」; (你實際上可以使用相同的),併爲你想要的文件寫入結果:file2 < <「a string」; (您使用,如果不總是相同的第二個)

注意:有可能是更好的方法來做到這一點,只是來到我的腦海中更容易

相關問題