Hey.
Bom, pesquisei bastante antes de resolver vir aqui pedir ajuda, não achei uma solução para isso em lugar nenhum.
O problema é que se eu rodar esse programa o output será:
Digite seu nome:
e quando eu digitar o executável fechará e não escreverá no .ini,
porém se eu remover essa parte do código:
A saída fica: Digite seu nome: Leonardo
e no arquivo aparece: Nome=Leonardo
É um pouco complicado explicar, mas o buffer só é escrito no teste.ini se só tiver 1 item, no caso, nome.
As "tags" Nome e Idade foram usadas só como exemplo, desejo usar isso de outra forma, porém funciona da mesma forma que esse programa.
teste.ini:
Como o programa deveria funcionar:
Qual seu nome?
Leonardo
Qual sua idade?
18
e então finalizar e no teste.ini constaria:
Nome=Leonardo
Idade=18
porém qd executo aparece:
Qual seu nome?
Leonardo
Programa termina e não escreve no teste.ini
IDE Utilizada: Visual studio 2013
Thanks.
Bom, pesquisei bastante antes de resolver vir aqui pedir ajuda, não achei uma solução para isso em lugar nenhum.
Código:
#include "stdafx.h" #include <cstdio> #include <Windows.h> #pragma warning(disable : 4996) // para remover a mensagem fopen function may be unsafe int _tmain(int argc, _TCHAR* argv[]) // função principal { char buff[100], asd[30]; FILE * fp; if ((fp = fopen("teste.ini", "r+")) == NULL) // abrir o arquivo "teste.ini" para leitura/escrita { MessageBoxA(0, "teste.ini não foi carregado!", "Erro!", 0x30); // msg de erro se não for possível abrir o arquivo exit(1); } else { while (fscanf(fp, "%s", buff) != EOF) // Enquanto não retornar -1 continuar lendo { if (strcmp(buff, "Nome=") == 0) { printf("Digite o seu nome: "); gets(asd); fputs(asd, fp); fflush(fp); } if (strcmp(buff, "Idade=") == 0) { printf("Digite a sua Idade: "); gets(asd); fputs(asd, fp); fflush(fp); } } fclose(fp); // fecha arquivo quando for totalmente lido } return 0; }
Digite seu nome:
e quando eu digitar o executável fechará e não escreverá no .ini,
porém se eu remover essa parte do código:
Código:
if (strcmp(buff, "Idade=") == 0) { printf("Digite a sua Idade: "); gets(asd); fputs(asd, fp); fflush(fp); }
e no arquivo aparece: Nome=Leonardo
É um pouco complicado explicar, mas o buffer só é escrito no teste.ini se só tiver 1 item, no caso, nome.
As "tags" Nome e Idade foram usadas só como exemplo, desejo usar isso de outra forma, porém funciona da mesma forma que esse programa.
teste.ini:
Código PHP:
Nome=
Idade=
Qual seu nome?
Leonardo
Qual sua idade?
18
e então finalizar e no teste.ini constaria:
Nome=Leonardo
Idade=18
porém qd executo aparece:
Qual seu nome?
Leonardo
Programa termina e não escreve no teste.ini
IDE Utilizada: Visual studio 2013
Thanks.
Comment