It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center




已关闭8年。




我正在开发一个小程序,以实现目标。

因此,我已经使用该程序获得了一个文件,但是在很多地方它都有一个以“&”开头的字符串。

我将解释我问题的最小部分。
我有一个字符串,在该字符串中,我要删除一些字符,该字符以'&'开头,后跟23位数字。

请提出我该如何实现。

最佳答案

好了,您需要创建一个循环才能读取文件中的所有字符串:

std::ifstream fin( "input.txt" );
std::string line;

std::getline( fin, line );
while( !fin.eof() ) {
    getline( fin, line );
}

当然,您不能就地修改文件。您需要将输入文件的内容写入另一个文件。
std::ifstream fin( "input.txt" );
std::ofstream fout( "output.txt" );
std::string line;

std::getline( fin, line );
while( !fin.eof() ) {
    fout << line << std::endl;
    getline( fin, line );
}

剩下的唯一事情是用“&”定位那些字符串,并消除随后的23个字符。
std::ifstream fin( "input.txt" );
std::ofstream fout( "output.txt" );
std::string line;

std::getline( fin, line );
while( !fin.eof() ) {
    unsigned int pos = line.find( '&' );

    if ( pos != string::npos ) {
        string line2 = line.substring( 0, pos -1 );
        line2 += line.substring( pos + 23 );
        line = line2;
    }

    fout << line << std::endl;
    std::getline( fin, line );
}

最后,您需要摆脱input.txt。希望这可以帮助。

关于c++ - 从以&开头的文件中删除一个字符串,然后其中包含23个字符。,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8930225/

10-11 23:19
查看更多