Αγνοήστε κενά διαστήματα στο scanf μορφή

ψήφοι
-1

Διάβασα εισόδου χρησιμοποιώντας scanfτο δεδομένο μορφή:

scanf(<%d;%d>%c, &lo, &hi, &op);

Αυτό δέχεται κάποια συμβολοσειρά όπως <1;10>k. Αυτό λειτουργεί όταν μπαίνω ακριβώς σε αυτή σύνταξη, αλλά δεν λειτουργεί με κενά διαστήματα, έτσι όπως αυτό δεν θα λειτουργήσει:

    <      1 ;
3 >      
 k

Λοιπόν, πώς μπορώ να scanfαγνοήσει αυτά τα κενά διαστήματα;

Δημοσιεύθηκε 07/11/2018 στις 23:39
πηγή χρήστη
Σε άλλες γλώσσες...                            


1 απαντήσεις

ψήφοι
4

Βάλτε χώρους πριν από τις κυριολεκτική τους χαρακτήρες της συμβολοσειράς μορφή scanf(). Δεν χρειάζεται στην πραγματικότητα χώρους πριν από τις περισσότερες %προδιαγραφές μετατροπής ( %c, %nκαι %[…]είναι οι εξαιρέσεις? Κάνουν να μην παραλείψετε λευκό κενό), αλλά μπορεί επίσης να είναι εκεί για συμμετρία (που δεν βλάπτουν). Ως εκ τούτου:

if (scanf(" < %d ; %d > %c", &lo, &hi, &op) == 3)
    …all OK — at least, three values were read OK…

Αν ήταν ταιριάζουν σε ένα %σύμβολο στην είσοδο, που θα χρησιμοποιήσετε %%στη συμβολοσειρά μορφοποίησης? ότι θα παραλείψετε κορυφαία λευκό κενό πάρα πολύ.

Απαντήθηκε 08/11/2018 στις 00:52
πηγή χρήστη

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more