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.
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]
Pergunta
blockmonork
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:
Editado por Mônica BonnaCodebox
Link para o comentário
Compartilhar em outros sites
7 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.