파일입출력 문제입니다 ㅠ 입력은 잘 되는데 출력이 깨져서 나와요!
글쓴이: kungfumong / 작성시간: 월, 2016/06/06 - 5:32오후
#include <stdio.h> #include <stdlib.h> #include <string.h> #define M_NUMBER 100 typedef struct member{ //int number; char id[100]; char pwd[100]; int Allmoney; float score; }data; static int numofdata=0; data * game_id[M_NUMBER]; void sign(void); void login(void); void file_store(); void file_load(); void id_register(data * id); int main(void) { int i=0; sign(); file_store(); file_load(); printf("%s%s %d %.2f",game_id[1]->id,game_id[1]->pwd,game_id[1]->Allmoney,game_id[1]->score); getchar(); getchar(); } void sign(void) { int i=0; data * login; if(numofdata>=M_NUMBER) { printf("회원가입할 공간인 부족합니다\n"); return; } while(i<2){ login=(data *)malloc(sizeof(data)); printf("아이디를 입력하세요:"); scanf("%s",(login->id)); printf("비밀번호를 입력하세요"); scanf("%s",(login->pwd)); game_id[numofdata]=login; game_id[numofdata]->Allmoney=10000;//회원 가입 했을때 초기에 주어지는 돈 numofdata++; i++; } printf("%d\n",numofdata); } void login(void) { int i; int ch=0; char check; char search_id[100]; char search_pwd[100]; printf("로그인할 아이디를 입력하세요"); scanf("%s",&search_id); printf("비밀번호를 입력하세요"); scanf("%s",&search_pwd); for(i=0;i<numofdata;i++) { if(!strcmp(game_id[i]->id,search_id)) { if(!strcmp(search_pwd,game_id[i]->pwd)){ printf("로그인 되었습니다\n"); printf("게임을 시작하십시오\n"); ch=1; } else printf("로그인 실패"); } } } void file_store() { int i=0; FILE * file=fopen("file.txt","a"); if(file==NULL){ printf("aaaaaaaaaaaaaaaaaa"); } fwrite(&numofdata, sizeof(int), 1, file); for(i=0;i<numofdata;i++) { fprintf(file,"%s %s %d %.2f",game_id[i]->id,game_id[i]->pwd, game_id[i]->Allmoney, game_id[i]->score); free(game_id[i]); } fclose(file); } void file_load() { int i=0; FILE * fp=fopen("file.txt", "r"); data * login; if(fp==NULL) return; fread(&numofdata, sizeof(int), 1, fp); if(fp==NULL){ printf("a안대 ㅠㅠㅠㅠㅠ"); exit(1); } login=(data *)malloc(sizeof(data)); while(fscanf(fp,"%s %s %d %.2f ",login->id,login->pwd, &login->Allmoney, &login->score)!=EOF){ game_id[numofdata]=login; numofdata++; } }
입력은 잘 되는데 ㅠㅠ 출력이 왜 깨져서 나올까요
Forums:
리눅스에서 쓸꺼라서
gets는 최대한 안쓰려고합니다 ㅠ
gcc -Wall 로 컴파일 해보셔요
gcc -Wall 로 컴파일 해보셔요
세벌 https://sebuls.blogspot.kr/
문제가 재현되는 최소한의 코드와 입출력만 추려서
문제가 재현되는 최소한의 코드와 입출력만 추려서 보여주세요. MWE(minimal working example)
예를 들어..
댓글 달기