Domanda

Sono un utente C ++ e ora sto cercando di usare c #.

In c ++ prendere input dall'utente è stato divertente (solo > >) e ha supportato tutti i tipi. Così è stato per i file. Ma in c # è troppo complesso, dato che posso prendere solo stringhe. Quindi devo manipolarlo per un uso successivo.

E se voglio prendere più input nella stessa linea separati da spazi bianchi, diventa più complesso come devo andare per la divisione delle stringhe. Quindi conversione ...

Può essere per la gestione degli errori e il codice sicuro. Ma sono comunque deluso da C #.

Siete tutti ragazzi esperti qui. C'è un modo semplice?

È stato utile?

Soluzione

Per quanto ne so, devi farlo nel modo più duro. (Sul lato positivo, tuttavia, il modo più difficile è più semplice di quanto sarebbe in C ++;))

Console.OpenStandardInput () ti dà il flusso di input, quindi può essere trattato come i file, ma dovrai farlo tu stesso se necessario. Ovviamente, C # ha una bella libreria Regex che può aiutarti qui.

T.TryParse (dove T è int, float, qualunque tipo tu voglia leggere) dovrebbe permetterti di convertire la stringa in quei tipi.

Altri suggerimenti

Alla fine, non ci vorrebbe molto per avvolgerlo - avresti solo bisogno di bufferizzare la linea corrente e leggere gli input nel formato desiderato. Ma IMO, una piccola divisione / TryParse ecc. Raramente fa male.

Non sono sicuro al 100% dei formati previsti che >> accetta, ma dubito che sarebbe difficile fare qualcosa di simile. Non mi offro volontario per scriverlo, però ;-p

Come già risposto, C # non supporta questo. Nessun sovraccarico di & Lt; & Lt; o > > per gli stream e mentre c'è un TextWriter.WriteLine (" ", ...) non esiste TextReader.ReadLine () corrispondente con un elenco di parametri variabili.

Provo a Why : il formato di dati suddiviso in spazi bianchi che Cin capisce semplicemente non viene più usato molto.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top