J'ai un programme C qui lit à partir du clavier, comme ceci:Le C de l'équivalent de la chaîne de format C
scanf("%*[ \t\n]\"%[^A-Za-z]%[^\"]\"", ps1, ps2);
Pour une meilleure compréhension de ce que cette instruction ne, Séparons la chaîne de format comme suit:
%*[ \t\n]\"
=> lire tous les espaces, les onglets et les nouvelles lignes ([ \t\n]
) mais ne les stocker dans aucune variable (d'où le '*
'), et continuera à lire jusqu'à rencontrer un double guillemet (\"
), mais le double guillemet n'est pas entré .
Une fois que scanf()
a trouvé la double citation, lit tous les caractères qui ne sont pas des lettres dans ps1. Ceci est accompli avec ...
%[^A-Za-z]
=> entrez n'importe quoi, pas une lettre majuscule 'A' à 'Z' et une lettre minuscule 'a' à 'z'.
%[^\"]\"
=> lire tous les caractères restants jusqu'à, mais sans inclure un guillemet dans ps2 ([^\"]
) et la chaîne doit se terminer par un guillemet (\"
), mais le guillemet n'est pas entrée.
que quelqu'un peut me montrer comment faire la même chose en C++
Merci
Il semble que ce que j'ai dit n'est pas clair pour certaines personnes! 'cin existe en C++ pour prendre la place de scanf de C, sinon, nous n'avons pas besoin de' cin ',' cout 'et toutes les fonctionnalités C++ introduites. – user7140484
@AndrewHenle, donc vous voulez dire que je ne peux pas lire de la console en respectant certaines restrictions! Est-ce que vous avez dit? Désolé mais je ne crois pas. – user7140484
@ 0x5453 Je ne veux pas renvoyer scanf en C++. Je veux faire la même chose sans cstdio – user7140484