C++ 获取字符串的最后9个字符

C++ 获取字符串的最后9个字符,c++,C++,Hello需要获取字符串最后N个字符的帮助: 有这样一句话: PutPixel(x + N, y + N, 0, 0, 0); // N = 1 - 1000 我想得到最后9个符号,它们是“0,0,0);”,我有大约50k行,每行有不同的数字,我想找到每一行有0,0,0);最后从数组中删除它,首先我必须找到它们 我尝试了行[N].substr(0,-9)但这不起作用,我也尝试了行[N].find(“0,0,0”)但这只是游戏我长号码列克“4294967295” 完整代码: const stri

Hello需要获取字符串最后N个字符的帮助: 有这样一句话:

PutPixel(x + N, y + N, 0, 0, 0); // N = 1 - 1000
我想得到最后9个符号,它们是“0,0,0);”,我有大约50k行,每行有不同的数字,我想找到每一行有0,0,0);最后从数组中删除它,首先我必须找到它们 我尝试了
行[N].substr(0,-9)但这不起作用,我也尝试了
行[N].find(“0,0,0”)但这只是游戏我长号码列克“4294967295”

完整代码:

const string file = "putpixel.txt";
const int maxlines = 60000;
int main()
{
    string lines[maxlines];
    fileRead(file,lines);
    deleteBlack(lines);
    cout << lines[0].find("0, 0, 0);");
    return 0;
}

void fileRead(const string fn,string line[]){
    int index = 0;
    ifstream fin(fn.c_str());
    while(!fin.eof()){
        getline(fin,line[index],';');
        index++;
    }
    fin.close();
}
const string file=“putpixel.txt”;
常数int maxlines=60000;
int main()
{
字符串行[最大行];
fileRead(文件,行);
删除黑色(线);
cout

此代码从文件中加载文本并搜索

“0,0,0”
,并使用

searchresult=stringFile.find(“0,0,0”)

substr( searchresult + search_string.length() , stringFile.length() )
它将一直这样做,直到
searchresult=-1
。当它这样做时,它会将更改的结果写回文件

#include <iostream>
#include <string>
#include <fstream>
#include <sstream>
using namespace std;


int main(){

    int searchresult=1;
    ifstream inFile;

    // load file into string
    inFile.open("putpixel.txt"); 
    stringstream strStream;
    strStream << inFile.rdbuf(); 
    string stringFile = strStream.str(); 
    inFile.close();

    cout<<"\nBefore replace \n";
    cout<<""<<stringFile<<" \n";


    // initialize search string and replace string
    string search_string = " 0, 0, 0";
    string replace_string = " ";


    // while searchresult is still greater than zero then keep searching
    while ( searchresult > 0 ){

        searchresult = stringFile.find(search_string);

        // if searchresult is greater than zero then keep doing this
        if(searchresult >= 0){
             string tmpstring = stringFile.substr(0,searchresult);
             tmpstring += replace_string;
             tmpstring += stringFile.substr(searchresult+search_string.length(), stringFile.length());
             stringFile = tmpstring;
        }

    }
    // update file after removing
    ofstream outFile("putpixel.txt");
    outFile << stringFile;
    outFile.close();

    cout<<"\nAfter replace \n";
    cout<<""<<stringFile<<" \n";

cout<<"\nPress ANY key to close.\n\n";
cin.ignore(); cin.get();
return 0;
}
在以下时间之后输出
putpixel.txt

PutPixel(x + N, y + N, );
PutPixel(x + N, y + N, );
PutPixel(x + N, y + N, );
PutPixel(x + N, y + N, );     

注释实际上是字符串的一部分吗?解决方案需要足够智能才能忽略它?从-9结尾计算位置并使用
substr()
?@yahoo5000显示字符串的定义及其初始化方式。我更新签出,注释不是字符串@πάντα的一部分ῥεῖ 我试过“substr(0,-9);”,但它会返回整行。我找到了更好的解决方案,读取文件->检查条件是否为真->存储到向量->写入文件。但仍然是tnx
PutPixel(x + N, y + N, );
PutPixel(x + N, y + N, );
PutPixel(x + N, y + N, );
PutPixel(x + N, y + N, );