E' un mio mezzo-debug che faccio in fase di test con l'output su console.
Capita spesso di trovare stampe su console strane (ad esempio, non vedi nulla in console dopo una stampa) e ti chiedi "perchè? sarà una stringa vuota? sarà una stringa che contiene un solo carattere di spaziatura, tipo spazio o tab?".
Utilizzando il carattere '|' sia prima che dopo la stringa, sai con buona sicurezza cosa c'è al suo interno.
Per dirne una, prima, mentre facevo i test sul tuo programma (nel primo test non usavo ancora la parse, scrivevo solo con cout << "|" << num << "|" << endl;), in output ho letto qualcosa come:
Mi sono subito accorto di essermi dimenticato del carattere di newline, che veniva incluso nella stringa dunque.codice:. . |-23 5| . .
Se non avessi usato le pipe probabilmente non mi sarei accorto subito dell'errore, con tutte le conseguenze del caso (in particolare, non sarei riuscito a ottenere il numero "5", in quanto lo stringstream avrebbe incontrato '\n' all'interno della stringa e si sarebbe fermato, ritornandomi solo "-23")
![]()