La funzione di modello getline legge un carattere aggiuntivo dopo che si verifichi il delimitatore

Il presente articolo è stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell’utente. Tuttavia, un articolo tradotto in modo automatico non è sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, più o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non è la sua. Microsoft non è responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell’utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.

Clicca qui per visualizzare la versione originale in inglese dell’articolo: 240015
Questo articolo è stato archiviato. L’articolo, quindi, viene offerto “così come è” e non verrà più aggiornato.
Sintomi
La funzione di libreria standard di c ++ modello getline legge un carattere aggiuntivo dopo che si verifichi il delimitatore. Fare riferimento al programma di esempio nella sezione informazioni per dettagli.
Risoluzione
Modificare la funzione membro getline , reperibile della stringa di file di intestazione sistema seguenti, come illustrato di seguito:
	else if (_Tr::eq((_E)_C, _D))                {_Chg = true;              //  _I.rdbuf()->snextc(); /* Remove this line and add the line below.*/ 		  _I.rdbuf()->sbumpc();                break; }				
Nota poiché la risoluzione comporta la modifica un file di intestazione di sistema, estremi necessario prestare attenzione per assicurarsi che nessun altro elemento viene modificato nel file di intestazione. Microsoft non è responsabile per qualsiasi problema derivante da modifiche indesiderate ai file di intestazione di sistema.
Status
Microsoft ha confermato che questo un bug nei prodotti sono elencati nella sezione "Si applica a".Questo problema è stato corretto in Microsoft Visual c ++. NET.
Informazioni
Nel programma di esempio riportato di seguito riportato viene illustrato il bug:
//test.cpp//Compiler options : /GX#include <string>#include <iostream>int main () {	std::string s,s2;	std::getline(std::cin,s);	std::getline(std::cin,s2);	std::cout << s <<'\t'<< s2 << std::endl;	return 0;}Actual Results:Hello<Enter Key>World<Enter Key><Enter Key>	Hello   WorldExpected Results:Hello<Enter Key>World<Enter Key>Hello   World				
STL

Avviso: questo articolo è stato tradotto automaticamente

Proprietà

ID articolo: 240015 - Ultima revisione: 12/05/2015 15:36:08 - Revisione: 3.0

The Standard C++ Library

  • kbnosurvey kbarchive kbmt kbtshoot kbprb kbbug kbfix kblangcpp kbnoupdate kbstl kbtemplate KB240015 KbMtit
Feedback