我需要知道如果它结束了
,该如何停止我需要最后一个15的元素的int值 而且对于其他行,我需要知道这个值是否是行
中的最后一个元素我尝试getline(文件,行) 但它只是给了我一个字符串! 还有line.length();给我文件的长度。
答案 0 :(得分:2)
您应该使用std::getline并解析您获得的字符串,或者使用char-by-char并将CR / LF视为行尾。然后从它向后移动直到你得到一个空间。
答案 1 :(得分:2)
您应继续使用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);
这将为您提供最后一个号码的int
表示。
答案 2 :(得分:1)
这将提取每行的最后一个数字:
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);
}
}
如果文件未被新行终止,则 f.eof()
可能为真,在这种情况下,f.get()
调用可能会失败并设置eofbit。
答案 3 :(得分:0)
std :: ifstream file {“your-file”};&#xA; std :: string line;&#xA; while(getline(file,line)){&#xA; std :: istringstream iss {line};&#xA;的std ::矢量&lt; INT&GT; VEC {的std :: istream_iterator&LT; INT&GT; {ISS},&#XA;的std :: istream_iterator&LT; INT&GT; {}};&#XA; if(vec.size()== 1){&#xA; //只有一个元素&#xA; }&#XA; vec.back()//行的最后一个值(/!\ check not empty first first)&#xA;}&#xA;
&#xA;