Problema: devo essere in grado di identificare quando si verificano due spazi bianchi consecutivi.Come si legge lo spazio bianco usando scanf in c?
Ho letto le seguenti domande:
how to read a string from a \n delimited file
e sono consapevole dei problemi scanf: http://c-faq.com/stdio/scanfprobs.html
ingresso sarà nel seguente formato:
1 5 3 2 4 6 2 1 9 0
Due spazi bianchi indicano che il prossimo set di dati deve essere gestito e confrontato a se stesso. La lunghezza della linea è sconosciuta e il numero o gli interi in ogni gruppo sono sconosciuti. Due spazi bianchi sono i più che separeranno il prossimo set di dati.
Mentre posso utilizzare fget e varie funzioni integrate per risolvere questo problema, sono al punto in cui risolvere il problema con scanf a questo punto sarà probabilmente più semplice. Tuttavia, se questo non è il caso, usando fgets, strtok e atoi faranno la maggior parte del lavoro, ma ho ancora bisogno di identificare due spazi bianchi di fila.
Quanto segue avrà numeri interi fino a quando non viene immesso un numero intero.
while (scanf ("%d", &x) == 1)
Quello che ho bisogno fare è leggere gli spazi bianchi come bene e se ci sono due spazi bianchi consecutivi io il programma per fare qualcosa di diverso con la prossima serie di dati.
E una volta che faccio ottenere uno spazio bianco non so come dire:
if ((input == "whitespace") && (previousInput == "whitespace")) ya da ya da else (input == "whitespace") ya da ya da else ya da ya da
Apprezzo il vostro tempo e grazie per il vostro aiuto.
Lezione imparata: Mentre una soluzione per scanf è pubblicato qui di seguito da Jonathan Leffler, la soluzione è stata un po 'più semplice, con getc (a titolo di richiedere la conoscenza meno intima della scanf interno, le espressioni regolari e char). Con una migliore conoscenza retrospettiva delle espressioni regolari, scanf e char renderebbero il problema più facile e, naturalmente, sapendo quali funzioni sono disponibili e quale sarebbe stato il migliore da utilizzare sin dall'inizio.
Questo è un formato di input piuttosto orribile. Se sei responsabile, ridisegnalo. Se, come sospetto, ti è stato assegnato un compito a casa, sfortuna, sono un gruppo sadico, i tuoi insegnanti. –
Si noti che lo "spazio bianco" è diverso da "due spazi"; 'spazio bianco' indica convenzionalmente una varietà di possibili caratteri, tra cui tabulazione e spazio (o spazio), e talvolta forma feed, tabulazione verticale o nuova riga; e occasionalmente anche backspace. –
@Jonathan Leffler: almeno non sta cercando di analizzare lo spazio bianco (http://compsoc.dur.ac.uk/whitespace/) – ninjalj