파일입출력에서 텍스트파일에 학생정보를 변수에 저장하려면...

파일입출력에서 텍스트파일에 학생정보를 변수에 저장하려면...

작성일 2004.12.19댓글 1건
    게시물 수정 , 삭제는 로그인 필요

학생정보 텍스트파일이 있다면

학번 이름 주민번호 주소 학과
0111 김씨 123-456 우리집 유아교육과
.
.
.
.
.
.
9999 조씨 999-999 다른집 사회체육과

이런식으로 학생이 약 5000명정도 되는 자료가 있습니다

학번 이름 주민번호는 "\t"(탭)으로 구분되어있습니다

이럴경우 클래스로 각변수를 선언 한후에

파일을 읽어서 선언한 변수에 입력하는 부분에서 막혀 무진장 고민중입니다

거의 첫단계라고 볼수있는데 막막합니다 ㅠ_ㅠ

자세한 설명부탁드립니다

소스에 주석달아서 답변해주시면 더욱 많은 도움이 될것같습니다

그럼 좋은하루 되세용^^



profile_image 익명 작성일 -

#include <cstdlib>
#include <iostream>
#include <fstream>
#include <conio.h>

#include <string.h>


using namespace std;

 

/*

구형 C++ 컴파일러를 사용한다면 위의 코드를 다음과 같이 바꿉니다.

#include <stdlib.h>
#include <iostream.h>
#include <fstream.h>
#include <conio.h>

#include <string.h>


// using namespace std;  // ERROR MESSAGE  in old version of compiler.
*/


class StudentInfo{
  private:
   //학번 이름 주민번호 주소 학과
   char no[16];
   char name[32];
   char idenNumber[64];
   char address[64];
   char major[32];

  public:
   //생성자
   StudentInfo( char* ino = "", char* iname = "", char* iidennum = "", char* iaddr = "",

    char* imaj = "" ){
    strcpy( no, ino );
    strcpy( name, iname );
    strcpy( idenNumber, iidennum );
    strcpy( address, iaddr );
    strcpy( major, imaj );
   }
 

    // 객체를 출력스트림에 쓰기 

    friend ostream& operator << ( ostream& os, const StudentInfo& rcs ){
    os << rcs.no << "\t" << rcs.name << "\t" << rcs.idenNumber << "\t"

     << rcs.address << "\t"  << rcs.major << endl;
     return os;
   }
 
   // 입력스트림으로부터 객체를 읽기
   friend istream& operator >> ( istream& is, StudentInfo& rcs ){
    is >> rcs.no >> rcs.name >> rcs.idenNumber >> rcs.address >> rcs.major;
    return is;
   }
};

/* 아래 메인함수는 명령라인에 전달된 입력화일의 정보들을 객체의 배열로 읽어들인 후 

 그 결과를 출력하는 예입니다. */
int main(int narg, char *argv[])
{
  // 1. 명령라인에 읽어들일 화일명이 입력되었는지 확인합니다.
  if( narg < 2 ){
   cout << "명령어 다음에 화일명이 빠졌습니다.[사용법: 명령어+화일명 ]\n " << endl;
   getch();
   exit( EXIT_FAILURE );
  }
  else if( narg > 2 ){
   cout << "명령라인에 불필요한 매개변수가 포함되어 있습니다.[사용법: 명령어+화일명]\n " << endl;
   getch();
   exit( EXIT_FAILURE );
  }
    
  // 2. 5000여명에 대한 정보를 저장할 배열을 동적메모리 공간에서 확보합니다. 
  StudentInfo* infos = new StudentInfo[5000];

  if( infos == 0 ){

   cout << "메모리를 확보할 수 없습니다. " << endl;

   getch();

   exit( EXIT_FAILURE );

  }
   
  // 3. 입력화일 스트림을 생성하고 읽어들여 위의 배열에 순차적으로 저장합니다.
  // argv[1] : 명령라인(command line )에 전달된 입력화일명
  ifstream inputFile( argv[1] );
  int index = 0;
 
  if( !inputFile ){
   cout << "입력화일 \"" << argv[1] << "\"를/을 열 수 없습니다.파일명이나 패스가

   올바른지 확인이 필요합니다." << endl;
   getch();
   exit( EXIT_FAILURE );
  }
 
  while( inputFile ){
   inputFile >> infos[index]; // friend 함수 "operator >>" 호출
   index++;
  } 
  inputFile.close();
  
  // 4. 읽어들인 만큼 배열에 저장된 정보를 콘솔( 표준출력스트림 cout )에 출력하고

  // 결과를 봅니다..
  for( int i = 0; i < index; i++ )
   cout << infos[i]; 
  getch(); 

  return 1;
}

C언어 변수 내용을 파일에 저장하기

C언어를 공부하는 학생입니다. 변수에 있는 값을 Txt 등의 파일에 저장했다가 다음번에 실행할... 찾아보니까 파일입출력 함수를 이용해야할...

[내공100]C언어 파일 입출력 텍스트.....

... 이상태에서 실행하면요 텍스트파일 읽어와서 1,2... 이런게 저장되어 있으면 파일 읽어들일때 이름: <- 이걸 찾고... 한 학생 성적정보가 끝나는 시점에...

c언어에서 텍스트파일 입출력 할려고...

바이너리파일 입출력만 공부하다가 갑자기 문득 텍스트... 기록하면, 변수가 메모리에 저장되어 있는 형태 그대로 저장이 됩니다. 텍스트 파일로 만들었다고...