C++ 如何认识它';s是c+中的行的结尾+;读取文件

C++ 如何认识它';s是c+中的行的结尾+;读取文件,c++,readfile,C++,Readfile,我需要知道如果到了终点怎么停车 我需要最后一个元素的int值,即15 对于其他行,我需要知道这个值是否是行中的最后一个元素 我尝试getline(文件,行) 但它只是给了我一根绳子! 还有line.length();给我文件的长度。您应该使用并解析您得到的字符串,或者逐字符处理CR/LF作为行尾。然后从它向后移动,直到得到一个空格。您应该使用并解析您得到的字符串,或者逐个字符,并将CR/LF视为行尾。然后向后移动,直到得到一个空格。您应该继续使用getline函数,从中您将获得std::str

我需要知道如果到了终点怎么停车

我需要最后一个元素的int值,即15 对于其他行,我需要知道这个值是否是行中的最后一个元素

我尝试getline(文件,行) 但它只是给了我一根绳子!
还有line.length();给我文件的长度。

您应该使用并解析您得到的字符串,或者逐字符处理CR/LF作为行尾。然后从它向后移动,直到得到一个空格。

您应该使用并解析您得到的字符串,或者逐个字符,并将CR/LF视为行尾。然后向后移动,直到得到一个空格。

您应该继续使用
getline
函数,从中您将获得
std::string
,然后使用以下命令提取最后一个数字:

string str = <getline() result>
size_t last_index = str.find_last_not_of("0123456789");
string result = str.substr(last_index + 1);
int num = std::stoi(result);
string str=
size_t last_index=str.find_last_not_of(“0123456789”);
字符串结果=str.substr(最后一个索引+1);
int num=std::stoi(结果);

这将为您提供最后一个数字的
int
表示。

您应该继续使用
getline
函数,从中您将获得
std::string
,然后使用以下方法提取最后一个数字:

string str = <getline() result>
size_t last_index = str.find_last_not_of("0123456789");
string result = str.substr(last_index + 1);
int num = std::stoi(result);
string str=
size_t last_index=str.find_last_not_of(“0123456789”);
字符串结果=str.substr(最后一个索引+1);
int num=std::stoi(结果);

这将为您提供最后一个数字的
int
表示形式。

这将提取每行的最后一个数字:

ifstream f ("./numbers");
vector<int> v;
int i;
while (f >> i) {
    char c = f.get();
    if (f.eof() || c == '\r' || c == '\n') {
        v.push_back(i);
    }    
}
ifstream f(“./number”);
向量v;
int i;
而(f>>i){
char c=f.get();
如果(f.eof()| | c='\r'| | c=='\n'){
v、 推回(i);
}    
}

f.eof()
如果文件没有被新行终止,则可能为true,在这种情况下,
f.get()
调用可能失败并设置eofbit。

这将提取每行的最后一个数字:

ifstream f ("./numbers");
vector<int> v;
int i;
while (f >> i) {
    char c = f.get();
    if (f.eof() || c == '\r' || c == '\n') {
        v.push_back(i);
    }    
}
std::ifstream file{"your-file"};
std::string line;
while (getline(file, line)) {
    std::istringstream iss{line};
    std::vector<int> vec{std::istream_iterator<int>{iss},
                         std::istream_iterator<int>{}};
    if (vec.size() == 1) {
        // only one element
    }
    vec.back() // last value of the line (/!\ check not empty first)
}
ifstream f(“./number”);
向量v;
int i;
而(f>>i){
char c=f.get();
如果(f.eof()| | c='\r'| | c=='\n'){
v、 推回(i);
}    
}
如果文件没有以新行终止,则
f.eof()
可能为真,在这种情况下,
f.get()
调用可能会失败并设置eofbit。

std::ifstream file{“your file”};
std::ifstream file{"your-file"};
std::string line;
while (getline(file, line)) {
    std::istringstream iss{line};
    std::vector<int> vec{std::istream_iterator<int>{iss},
                         std::istream_iterator<int>{}};
    if (vec.size() == 1) {
        // only one element
    }
    vec.back() // last value of the line (/!\ check not empty first)
}
std::字符串行; while(getline(文件,行)){ std::istringstream iss{line}; std::vector vec{std::istream_迭代器{iss}, std::istream_迭代器{}; 如果(向量大小()==1){ //只有一个元素 } vec.back()//行的最后一个值(/!\check not empty first) }
std::ifstream文件{“您的文件”};
std::字符串行;
while(getline(文件,行)){
std::istringstream iss{line};
std::vector vec{std::istream_迭代器{iss},
std::istream_迭代器{};
如果(向量大小()==1){
//只有一个元素
}
vec.back()//行的最后一个值(/!\check not empty first)
}

完全正确。继续前进。现在你有了这一行,解析出这一行中的最后一个值。这是EOF,他要求的是行尾,这完全正确。继续前进。现在你有了这行,解析出这行中的最后一个值。这是EOF,他要求的是行的末尾