#include "stdafx.h"
#include
#include
#include
typedef struct test
{
char name[10];
char number[20];
test *link;
}test_Node;
test_Node T,S;
test_Node *TEST;
void LoadFile()
{
int i = 0;
TEST = (test_Node *)malloc(sizeof(test_Node));
FILE *fp;
fp = fopen("test.txt", "wt");
strcpy(TEST->name, "aaaa");
strcpy(TEST->number, "200-2000");
fwrite(TEST, sizeof(test_Node), 1, fp);
strcpy(TEST->name, "bbbb");
strcpy(TEST->number, "200-2000");
fwrite(TEST, sizeof(test_Node), 1, fp);
fclose( fp );
printf("저장한 내용=> %s,%s\n\n", TEST->name, TEST->number);
fp=fopen("test.txt", "rt");
while( !feof(fp) )
{
i = i + 1;
fread(&S, sizeof(test_Node), 1, fp);
printf("%d번째 실행=>> %s, %s\n" , i, S.name, S.number);
}
printf("\n\n실행횟수==>%d\n", i);
fclose(fp);
}
코드 만들기 귀찬아서 다른사람꺼 그대로 빼껴왔습 ㅋㅋㅋㅋ
알아서들 쓰시길
복잡한것도 없으니-_-;;
fread함수는 정해진 규칙이있는 택스트파일을 읽어올때 힘을 발휘 하는데 보통 텍스트파일을 처리할때 한줄씩 처리하는 것이 일반적이기때문에 fread 보다는 fgets를 쓰는 것이 좋습니다.
void LoadFile()
{
int i = 0;
FILE *fp;
fp = fopen("Target.txt","rt");
while(fgets(strTemp, 513,fp)!=NULL)
{
++i;
sprintf( tmp, "%s", strTemp );
MessageBox(NULL,tmp ,0,0);
}
fclose(fp);
}
실행해보면 할줄씩 불러 옵니다.
이제 적당이 가공해서 쓰면 됩니다.
참고로 i = i +1;은 번호 채크하려고 쓰는겁니다.(i++써도 관계없습니다....이걸 왜 설명하고 있지 OTL)
파일 한두개 읽을 때야 직접 코드를 넣어사용하거나 따로 함수를 빼서 적역변수든 포인터든 넘겨도 되지만 파일이 여러개인 경우에는 포인터뿐이 답이 없습니다.(여러가지 면에서)
이번 파트는 함수를 만들어 구조체포인터로 데이터를 받아봅시다.
//파일 불러오기 구조체
typedef struct tTest
{
char *strTest;
int intTest;
} typeTest;
void LoadFile(char* strDir, typeTest *testTemp)
{
//파일을 읽어들인다.
FILE *fp;
fp = fopen( strDir, "rt");
char strTempText[2048];
fread( &strTempText, sizeof(char[2048]), 1, fp);
testTemp->intTest = _filelength(_fileno(fp));
fclose(fp);
testTemp->strTest = new char[testTemp->intTest ];
testTemp->strTest = (char*)malloc( testTemp->intTest + 1);
memset(testTemp->strTest , 0, sizeof(char) * (testTemp->intTest + 1));
for( int i = 0 ; i < testTemp->intTest ; ++i)
{
testTemp->strTest[i] = strTempText[i];
}
}
이렇게 선언하고 사용은
//파일데이터
typeTest testFileData;
//직급 변환
LoadFile("Class.txt", &testFileData);
sprintf( strTemp, "%s", testFileData.strTest);
참고로 바이너리 파일같은 것을 읽을때도 이방식을 사용하면 됩니다.
p.s. 텍스트의 빈곳에 쓰레기 값이 들어간다면
memset( strTemp, 0x00, sizeof(strTemp));
요렇게 해서 먼저 초기화를 시킨후 사용하자!