У меня есть программа C, которая считывает с клавиатуры, например:C++ эквивалент форматной строки языка C
scanf("%*[ \t\n]\"%[^A-Za-z]%[^\"]\"", ps1, ps2);
Для лучшего понимания того, что эта команда делает, давайте разбить строку формата следующим образом:
%*[ \t\n]\"
=> читать все пробелы, табуляции и новые строки ([ \t\n]
), но не хранить их в любой переменной (отсюда «*
») и будет читать до тех пор, пока не встретит двойную кавычку (\"
), однако двойная кавычка не вводится ,
Однажды scanf()
нашел двойную кавычку, читает все символы, которые не являются буквами в ps1. Это выполняется с помощью ...
%[^A-Za-z]
=> введите что-либо не заглавную букву 'A' через 'Z' и строчную букву 'a' через 'z'.
%[^\"]\"
=> прочитать все оставшиеся символы до, но не включая двойные кавычки в ps2 ([^\"]
) и строка должна заканчиваться кавычками (\"
), однако двойные кавычки не вводится.
Может кто-то показать мне, как сделать то же самое в C++
Спасибо
Кажется, что я сказал, что это не ясно для некоторых людей! 'cin существует в C++, чтобы заменить scanf на C, иначе нам не нужны' cin ',' cout 'и все возможности C++. – user7140484
@AndrewHenle, так что вы имеете в виду, что я не могу читать с консоли, предоставляя некоторые ограничения! Это ты сказал? Извините, но я не возражаю. – user7140484
@ 0x5453 Я не хочу ссылаться на scanf на C++. Я хочу сделать то же самое без cstdio. – user7140484