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