Есть ли какой-то трюк, который уже был встроен в одну из библиотек или мне нужно что-то написать, чтобы проверить его вручную? Следующий код помогает мне определить, было ли прочитано слишком мало числа параметров, но не слишком много, потому что sscanf останавливается, например, на 3, даже если в этой строке 5 параметров и идет в другую строку.c sscanf проверить, есть ли в строке несколько параметров?
if(sscanf(buffer, "%d", &elements->start_state_) != 1)
{
//code
}
P.S. имейте в виду, что я делаю линейный ввод.
Эта программа будет работать хорошо, если было прочитано 0 или 1 параметров, но более 1 не обнаружено и представляет проблему для меня.
Все ли «параметры» в строках вы читаете целые числа? Затем вы можете использовать ['strtol'] (http://en.cppreference.com/w/c/string/byte/strtol), он даст вам указатель на следующий символ после номера и после пропуска ведущего белого -пространство, вы можете использовать его в цикле для чтения нескольких чисел. Или, возможно, используйте ['strtok'] (http://en.cppreference.com/w/c/string/byte/strtok) для разделения ввода на пробел. –
Я боялся, что решение strtok не будет работать с несколькими пространствами, к счастью, это было :)! Неплохо –