0
Я пытаюсь читать входной файл в формате:Проверка, что строка входного файла содержит только один Int в C++
1
4
56
12
С каждым целым, находящимся в одной строке.
Цель состоит в том, чтобы определить, что каждая строка является int
и что она содержит только одну int
. Это мой фрагмент кода:
std::fstream file(filename, std::ios_base::in);
int num=0;
char c;
file.open(filename);
while(std::getline(file, line)){
std::istringstream s(line);
if(!(s >> num)){
//error not a number
file.close();
std::exit(EXIT_FAILURE);
}else if(s >> c){
//error there was more than one object in a line
file.close();
std::exit(EXIT_FAILURE);
И ошибка, что я получаю это:
a5.cpp:28:22: error: implicit instantiation of undefined template 'std::__1::basic_istringstream<char,
std::__1::char_traits<char>, std::__1::allocator<char> >'
std::istringstream s(line);
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/iosfwd:120:33: note:
template is declared here
class _LIBCPP_TYPE_VIS_ONLY basic_istringstream;
включили вы заголовок 'sstream'? – Pradhan
Если вы собираетесь прервать программу, если вход не работает, вы можете также открыть поток с исключениями и позволить ему умереть автоматически. –
О, мужчина, ты был _so_ близко. Я думал, что этот вопрос будет больше «while (! .eof)» бессмыслицей или какой-то страшной реализацией 'sscanf'. Но нет ... ты просто пропустил заголовок! лол ;) –