C ++ эквивалент fscanf ()? - PullRequest
       19

C ++ эквивалент fscanf ()?

4 голосов
/ 25 июля 2010

И пожалуйста, не говорите, что это fscanf (); P

Я пытаюсь заменить эту строку:

if ( fscanf(fp, "P%c\n", &ch) != 1 )

Если я правильно понимаю, он пытается прочитатьchar и сохраните его в & ch, только если он находится между 'P' и '\ n'.Это правильно?И если это удается, он возвращает 1 (количество прочитанных символов)?

Я пытаюсь найти версию C ++.Есть ли какой-нибудь простой способ сделать такое форматированное чтение?Или мне нужно использовать операторы fstream, operator >> и nested if?

Ответы [ 2 ]

4 голосов
/ 25 июля 2010

Безопасная альтернатива C ++ с проверками типов: std :: stringstream .

1 голос
/ 25 июля 2010

В Visual Studio безопасной, но непереносимой эквивалентной функцией является fscanf_s.

В общем случае для переносимости вы должны использовать один из потоковых классов, который, как вы заметили, может затруднить правильное форматирование.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...