2016-06-11 41 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”; (您使用,如果不总是相同的第二个)

注意:有可能是更好的方法来做到这一点,只是来到我的脑海中更容易

相关问题