>  기사  >  컴퓨터 튜토리얼  >  C 언어에서 구조 변수에 파일 데이터를 할당하는 방법

C 언어에서 구조 변수에 파일 데이터를 할당하는 방법

王林
王林앞으로
2024-01-12 15:27:18959검색

C 언어에서 구조 변수에 파일 데이터를 할당하는 방법

/*주어진 성별[2]은 4글자가 맞지 않는 것 같습니다. . . . . . 그러나 질문의 ​​의미는 분명합니다.

**프로그래밍을 단순화하기 위해 구조의 모든 데이터를 문자 배열로 변경했습니다. 숫자가 필요한 경우 변환 단계를 추가하면 됩니다**. , 프로그램 Body 배열에 구조가 사용됩니다. 파일에 몇 줄이 있는지 확실하지 않은 경우 메모리를 절약하기 위해 동적 할당을 사용할 수 있습니다. 급하게 쓴 글이고 캡슐화된 기능도 없지만 그래도 쓸만하니 그냥 하세요~~~

*/

#포함 <...>

고용구조

{

문자 ID[10];

문자 이름[10];

캐릭터 섹스[5];

문자 연령[5];

char edu[10];

차르 임금[5];

문자 주소[20];

문자 번호[20];

};

int _tmain(int argc, _TCHAR* argv[])

{

char buf[100];

파일* pf=NULL;

구조 고용 Ep[10]={};

int 플래그=0;

pf=fopen("employ.dat","r");

if(!pf)

{

printf("파일 열기 실패! n");

system("일시중지");

반품 -1;

}

동안(fgets(buf,99,pf))

{

char* pchar=buf;

for(int i=0;i

{

Ep[flag].id[i]=*pchar;

if(*pchar++==',')

휴식;

}

for(int i=0;i

{

Ep[flag].name[i]=*pchar;

if(*pchar++==',')

휴식;

}

for(int i=0;i

{

Ep[flag].sex[i]=*pchar;

if(*pchar++==',')

휴식;

}

for(int i=0;i

{

Ep[flag].age[i]=*pchar;

if(*pchar++==',')

휴식;

}

for(int i=0;i

{

Ep[flag].edu[i]=*pchar;

if(*pchar++==',')

휴식;

}

for(int i=0;i

{

Ep[flag].wage[i]=*pchar;

if(*pchar++==',')

휴식;

}

for(int i=0;i

{

Ep[flag].address[i]=*pchar;

if(*pchar++==',')

휴식;

}

for(int i=0;i

{

Ep[플래그].번호[i]=*pchar;

if(!*pchar++)

휴식;

}

//printf("%s",buf);

++플래그;

}

fclose(pf);

system("일시중지");

0을 반환합니다;

}

C 언어에서 txt 파일의 데이터 변수를 사용하는 방법

fopen 및 fscanf 기능을 사용하여 txt 파일의 내용을 읽고 간단한 작업을 수행합니다.

1.Fopen 함수 프로토타입: FILE * fopen(const char * path, const char * mode);

fopen 함수의 첫 번째 매개변수는 파일 경로이고, 두 번째 매개변수는 열기 방법입니다.

r 파일을 읽기 전용 모드로 열면 파일이 존재해야 합니다.

r+는 읽고 쓰기 위해 파일을 엽니다. 파일이 존재해야 합니다.

rb+는 읽고 쓰기 위해 바이너리 파일을 열어 데이터를 읽을 수 있도록 합니다.

rw+ 읽기-쓰기는 텍스트 파일을 열어 읽고 쓸 수 있습니다.

w 쓰기 전용 파일을 엽니다. 파일이 존재하면 파일 길이가 0으로 지워집니다. 즉, 파일 내용이 사라집니다. 파일이 존재하지 않으면 파일을 생성하십시오.

w+는 읽기 및 쓰기 가능한 파일을 엽니다. 파일이 존재하면 파일 길이가 0으로 지워집니다. 즉, 파일 내용이 사라집니다. 파일이 존재하지 않으면 파일을 생성하십시오.

a 쓰기 전용 파일을 추가 모드로 엽니다. 파일이 없으면 파일이 생성됩니다. 파일이 있으면 작성된 데이터가 파일 끝에 추가됩니다. 즉, 파일의 원래 내용이 유지됩니다. (EOF 문자 예약됨)

a+ 추가 모드에서 읽기-쓰기 파일을 엽니다. 파일이 없으면 파일이 생성됩니다. 파일이 있으면 작성된 데이터가 파일 끝에 추가됩니다. 즉, 파일의 원래 내용이 유지됩니다. (원래 EOF 기호는 유지되지 않습니다)

wb 쓰기 전용으로 새 바이너리 파일을 열거나 생성합니다. 데이터 쓰기만 허용됩니다.

wb+ 읽기-쓰기는 바이너리 파일을 열거나 생성하여 읽고 쓸 수 있습니다.

wt+ 읽기 및 쓰기 텍스트 파일을 열거나 생성하여 읽고 쓸 수 있습니다.

at+는 읽고 쓰기 위해 텍스트 파일을 열어 텍스트 끝에 데이터를 읽거나 추가할 수 있습니다.

ab+는 읽고 쓰기 위해 바이너리 파일을 열어 파일 끝에 데이터를 읽거나 추가할 수 있습니다.

위의 형태학적 문자열은 b 문자(예: rb, w+b 또는 ab+ 및 기타 조합)를 추가하여 열린 파일이 순수 텍스트 파일이 아닌 바이너리 파일임을 함수 라이브러리에 알리기 위해 추가될 수 있습니다.

반환 값: 파일이 성공적으로 열린 후 스트림을 가리키는 파일 포인터가 반환됩니다. 파일 열기에 실패하면 NULL이 반환되고 오류 코드가 errno에 저장됩니다.

2. 루틴:

1

2

3

4

5

6

7

8

9

10

11

12

#포함

#define F_PATH "d:\myfile\file.dat"

문자;

intmain(){

FILE*fp=NULL; //주의가 필요합니다

fp=fopen(F_PATH,"r");

if(NULL==fp) return-1; //오류 코드를 반환하려면

while(fscanf(fp,"%c",&c)!=EOF) printf("%c",c) //텍스트를 읽고 콘솔에 인쇄합니다

fclose(fp);

fp=NULL; //null을 가리켜야 합니다. 그렇지 않으면 원래 열린 파일 주소를 가리킵니다

return0;

}

C 음성으로 txt 파일의 특정 줄을 읽고 변수에 할당하는 방법

가장 간단한 방법은 한 줄씩 읽으면서 원하는 데이터 줄만 가져오는 것입니다. 아래는 제가 작성한 간단한 예시입니다. 상품을 세 번 뽑았는데 중복이 없었습니다.

#포함

#포함

#포함

#define PEOPLE_NUM 10 //내 파일에 이름이 10개 있습니다

void get_prize(FILE* fp, char Prize_name[])

{

int 숫자;

그래요;

fseek(fp, 0, SEEK_SET);

printf("시작...n");

num = rand() % PEOPLE_NUM + 1;

for(i = 0; i

{

fgets(prize_name, 32, fp);

}

printf("%s님이 상품을 받았습니다!!!n", Prize_name);

}

int 메인()

{

파일* fp = fopen("name.txt", "r");

int Prize_num;

그래요;

char 상품_이름[32] = {0};

srand(시간(0));

for(i = 0; i

{

printf("n");

get_prize(fp, 상품_이름);

}

fclose(fp);

0을 반환합니다;

}파일은 다음과 같습니다.

C 언어에서 구조 변수에 파일 데이터를 할당하는 방법

실행 중인 스크린샷:

C 언어에서 구조 변수에 파일 데이터를 할당하는 방법

이런 종류의 프로그램을 작성할 때 이름을 저장하는 파일은 프로그램이 쉽게 처리할 수 있도록 깔끔하게 정리되어야 합니다. 행운을 빌어요.

위 내용은 C 언어에서 구조 변수에 파일 데이터를 할당하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 docexcel.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제