【问题标题】:Can someone show me how to modify a txt file in c++ ? ( i`m working in codeblocks)有人可以告诉我如何在 C++ 中修改 txt 文件吗? (我在代码块中工作)
【发布时间】:2016-10-12 09:38:53
【问题描述】:

所以我有一个这样的txt文件:

3/1995 13,25,16,14

4/1995 36,1,24,48

5/1996 39,46,35,2

233/1996 14,16,25,12

我想在另一个 txt 文件中将其修改为如下所示:

13,25,16,14

36,1,24,48

39,46,35,2

14,16,25,12

我还想将它们从 char 转换为 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;
}

而且它不会读取空白空间,所以它只会把所有东西都搞砸。

【问题讨论】:

  • 所以你想删除前面的数字,这很容易:使用getline() 获取整个行(参考:link)。然后你必须简单地擦除你从开始到第一个空白处得到的字符串。看到你的行中总是有 4 个数字,因此你也可以从剩下的字符串中删除所有“,”符号并创建一个 stringstream 对象。

标签: c++ arrays text vector


【解决方案1】:

为了收集包括空格在内的所有字符,我建议您使用“get”而不是

编辑:或建议的getline

为了应用您描述的更改,这很容易,因为基本上每一行都是由两个字符串组成的,您总是希望只保留第二个。

所以你只需要对每一行执行 file >> "a string" >> "a string"; (您实际上可以使用相同的),对于您想要写入结果的文件:file2

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

【讨论】:

    猜你喜欢
    • 2021-08-12
    • 2020-10-20
    • 1970-01-01
    • 2015-07-30
    • 1970-01-01
    • 1970-01-01
    • 2022-06-17
    • 2019-12-02
    • 1970-01-01
    相关资源
    最近更新 更多