Pessoal, estou com o seguinte problema: no código abaixo, quando eu chamo o método "getline(cin, texto);" para ler uma string fornecida pelo usuario, o programa recebe o número normalmente, mas pula a etapa do texto, voltando pro main. Mudei para "cin>>texto;" que embora seja errado para este caso, fiz pra ver o programa funcionar. Mas já que a variável texto é uma string e não um char, acontece do programa entrar num loop infinito quando o usuário digita um texto contento espaços. O que pode ser isso??? Obrigado a todos pela atenção. Agora, o código completo: #include <iostream> #include <fstream> #include <string> using namespace std; int FuncaoNos () { int numero; string texto; cout <<"\n Digite um numero qqer"; cin >>numero; cout <<"\n Digite um texto"; cin >> texto; // AQUI ESTÁ O PROBLEMA: O CORRETO PARA LER A STRING COM ESPAÇOS, SERIA getline(cin, texto); MAS USANDO ELE, O PROGRAMA PULA ESSA PARTE E VOLTA PRA MAIN. ofstream reescreve; reescreve.open("Config.xml"); reescreve<<"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"; reescreve<<"<Config>\n"; reescreve<<"<Entrada numero=\""<<numero<<"\" texto=\""<<texto<<"\"/>\n"; reescreve<<"</Config>\n"; reescreve.close(); cout<<"\n\nArquivo XML editado.\n"; cout<<"--------------------------\n"; return 0; } // ----------------- M A I N int main(){ int escolha; int loop = 1; if ( loop == 1 ) { loop = 1; while ( loop != 0 ) { cout<<"\n Digite: \" 1 \" para escrever no xml, ou \" 0 \" para encerrar o programa: "; cin >> escolha; if ( escolha != 0 ) { cout<<"\nMetodo de escrita..."; if ( escolha == 1 ) { // sem app FuncaoNos (); } else if (( escolha != 1)||( escolha != 0)) { cout<<"\n é pra digitar 1 ou 0 somente!"; } } // escolha dif 0 else if ( escolha == 0 ) { cout<<"\nPrograma fechado pelo usuario.\n"; cout<<"----------------\n"; loop = 0; } } // UAILI if ( loop == 1 ) loop = 1; else loop = 0; } // uaili system("PAUSE"); return EXIT_SUCCESS; } [/CODEBOX]