wgd_le 0 Denunciar post Postado Maio 5, 2016 Bom dia!! Esse é meu primeiro post no forum, então peço desculpa se postei no lugar errado!! Sou novo no mundo da programação, então faço muitas coisas erras, e meu erro agora é o seguinte: Foi pedido que pegue os valores de 13 edits diferentes então criei um laço for da seguinte maneira float preço[13]; for(int ind=0;i<=13;i++){ preço=StrToFloat(Editind->Text); } Por não ter renomeado os edits, os mesmo ficam edit1, edit2... O problema é que o "ind" do laço for junta com nome, fincando editIND que não existe. Existe alguma forma de resolver esse problema usando um laço de repetição? Compartilhar este post Link para o post Compartilhar em outros sites
pedropgomes 4 Denunciar post Postado Maio 5, 2016 for(int ind=0;i<=13;i++){ troca por: for(int i=0; i<=13;i++){ se não ajudar tente explicar melhor o problema! kkk Compartilhar este post Link para o post Compartilhar em outros sites
_Isis_ 202 Denunciar post Postado Maio 5, 2016 Se é p/ ler 13 valores, use 0<= i <13. Preste atenção nas condições. Compartilhar este post Link para o post Compartilhar em outros sites
wgd_le 0 Denunciar post Postado Maio 5, 2016 for(int ind=0;i<=13;i++){ troca por: for(int i=0; i<=13;i++){ se não ajudar tente explicar melhor o problema! kkk Opa, foi erro na hora de escrever aqui. Acho que expliquei mal o problema mesmo. No caso eu preciso simplesmente ler 13 edits, invés de escrever as 13 atribuições, uma por uma, gostaria de fazer isso pelo laço for: inves de fazer assim: preço[0] = StrToFloat(Edit1->Text); preço[1] = StrToFloat(Edit2->Text); e ate a edit 13. Queria fazer com laço for, só que o "I" do laço fica como se fosse o nome do componente, ficando editi, e não edit1, edit2 conforme o loop. Se é p/ ler 13 valores, use 0<= i <13. Preste atenção nas condições. Verdade, me confundo ainda um pouco com isso, vlws ai pelo toque! Compartilhar este post Link para o post Compartilhar em outros sites
pedropgomes 4 Denunciar post Postado Maio 5, 2016 ainda n entendi bem o que você quer fazer :D. mas eu faria assim. Para ler: float preco[13]; int i; for( i = 0; i < 13; i++){ scanf("%f",&preco[i]); }; para imprimir na tela: for( i = 0; i < 13; i++){ printf("edit%d -> %.2f",(i+1),preco[i]); } assim iria armazenar os valor no vetor e depois ia escrever do jeitinho que você falou: edit1, edit2...assim por diante! Compartilhar este post Link para o post Compartilhar em outros sites
wgd_le 0 Denunciar post Postado Maio 5, 2016 ainda n entendi bem o que você quer fazer :D. mas eu faria assim. Para ler: float preco[13]; int i; for( i = 0; i < 13; i++){ scanf("%f",&preco[i]); }; para imprimir na tela: for( i = 0; i < 13; i++){ printf("edit%d -> %.2f",(i+1),preco[i]); } assim iria armazenar os valor no vetor e depois ia escrever do jeitinho que você falou: edit1, edit2...assim por diante! É só pra pegar o valor dos componentes Edits e passar para o vetor. Mas são 13 caixas de texto. Os edit1, edit2 é o nome do componente. O problema é que não sei como vincular o "i" do laço como o nome da caixa de texto, assim o "i" vira 1,2... e os edits se torna edit1 e edit2... igual no vetor, preco[1], preco[2]... Mas o que quero mesmo é somente pegar os valores das caixas de texto em um laço de repetição. Acho importante falar, que o programa é com interface, e já tem todas as caixas de texto, elas com os nomes edit1 edit2 e assim por diante. Desculpe a complicação, é que sou péssimo com palavras!! Compartilhar este post Link para o post Compartilhar em outros sites
_Isis_ 202 Denunciar post Postado Maio 5, 2016 Cara, se vc está usando componente gráfico, vai ter que recorrer à hierarquia da janela p/ pesquisar por tipo (InputText ou outro nome parecido). Aí sim vc vai poder usar um loop p/ percorrer todos os campos (normalmente a API retorna uma lista de componentes se possuir um método tipo findByType('inputText')). Mas aí parece mais C++ do que C. Compartilhar este post Link para o post Compartilhar em outros sites
freak1Day 1 Denunciar post Postado Maio 6, 2016 Essa função que criei já pode resolver seu problema em converter String para Float: float StrToFloat(const char *Str){ float result = strtof(Str, NULL); return result; } Compartilhar este post Link para o post Compartilhar em outros sites