**Here if you use Double then you can easily get int value **
package com.example.demo;
public class TEST {
public static void main(String[] args) {
Training4 obj = (x) -> x.intValue();
System.out.println(obj.constrmeth(10.5));
}
}
interface Training4 {
public Integer constrmeth(Double db);
}
Использование игнорирует () для игнорирования всего до следующей строки:
in.ignore(std::numeric_limits<std::streamsize>::max(), '\n')
Если необходимо сделать это, вручную просто проверяют othe символ, чтобы видеть, ли '\n'
char next;
while(in.get(next))
{
if (next == '\n') // If the file has been opened in
{ break; // text mode then it will correctly decode the
} // platform specific EOL marker into '\n'
}
// This is reached on a newline or EOF
Это, вероятно, перестало работать, потому что Вы делаете искание прежде, чем очистить плохие биты.
in.seekg(0, ios::beg); // If bad bits. Is this not ignored ?
// So this is not moving the file position.
sz.clear();
getline(in, sz);
cout << sz <<endl; //no longer reads
Необходимо очистить состояние ошибки потока с in.clear();
после цикла затем поток будет работать снова, как будто никакой ошибки не произошло.
Вы могли бы также упростить свой цикл до:
while (in >> v) {
cout << v << " ";
}
in.clear();
Потоковое извлечение возвращается, если операция успешно выполнилась, таким образом, можно протестировать это непосредственно без явной проверки in.good();
.