n 대부분의 C++는 또 C의 입출력 라이브러리 함수를 제공하는데 printf() 포함된다. 비록 printf()가 cout보다 사용하기는 편하지만 C++에서는 바람직하지 않다.
n Printf()는 형의 안정성을 제공하진 않는다. 따라서 정수형을 문자형으로 무심코 출력하라거나 그 반대로 출력하라는 등의 명령을 내릴 수 있다. 또 printf()는 클래스를 지원하지 않는다. 따라서 프로그래머는 클래스 자료를 출력시키지 못한다. 각 클래스의 멤버를 하나씩 printf()에 주어져야 한다.
n Printf()를 사용하기 위해선 #include stdio.h를 포함시킨다.
n Printf()에서 사용되는 일반적인 변환 상술자를 알아본다. 아래의 표를 본다.
상술자 |
사용 |
%s |
문자열 |
%d |
정수형 |
%l |
long 정수형 |
%ld |
long 정수형 |
%f |
float |
n printf()를 사용한 간단한 프로그램 예제
#include <stdio.h> #include <iostream> using namespace std; int main() { printf ("%s", "Hello world\n"); char *str = "hello again!\n"; printf("%s\n", str); int x = 5; printf ("%d\n", x); char *pstrTwo = "here's some values: "; char *pstrThress = " and also these."; int y = 10, z = 30; long longVal = 98765; float floatval = 9.9; printf ("%s, %d, %d, %s, %ld, %f\n", pstrTwo, y, z, pstrThress, longVal, floatval); char *pstrFour = "Formatted: "; printf ("%s, %5d, %10d, %10.5f\n", pstrFour, y,z, floatval); return 0; return 0; } /// 결과 Hello world hello again! 5 here's some values: , 10, 30, and also these., 98765, 9.900000 Formatted: , 10, 30, 9.90000 |
파일의 입력과 출력
n 스트림은 키보드나 디스크로부터 자료를 받아들이고 또 화면이나 디스크로 출력을 하는데 단일한 방식을 사용한다.
n 파일을 열고 닫을 때 프로그래머는 ifstream과 ostream의 객체를 알아보기로 한다.
ofstream
n 파일로부터 읽어들이거나 쓰기 위해 사용되는 특수한 객체를 ofstream객체라 한다.
n ofstream 객체는 iostream 객체로부터 파생되었다.
n 파일에 쓰려면 ofstream 객체를 만들고 디스크의 특정 파일과 연결지어야 한다.
n ofstream 객체를 사용하려면 먼저 프로그래머는 #include <fstream.h>를 포함해야 한다.
조건을 나타내는 상태
n iostream 객체는 입력과 출력 상태를 알리는 플래그를 가지고 있다.
n 불린 함수 eof(), bad(), fail(), good()를 사용하여 이 플래그들을 검사할 수 있다.
- eof() : iostream 객체가 EOF를 만나면 참값을 반환한다.
- bad() : 유효하지 않은 연산자를 시도하려면 참값을 반환
- fail() : bad() 함수가 실패하면
- good() : 위의 세 개의 함수가 거짓을 참을 반환한다.
입출력을 위한 파일 열기
n 만약 ttext.txt 파일을 ofstream 객체로 열기 위해 ofstream 객체의 인스턴스를 선언하고 매개 변수로 파일 이름을 전달한다.
- ofstream fout(“ttext.txt”);
n 입력용으로 열기 위한 방법
- ifstream fin(“ttext.txt”);
n close()
- 읽기용이나 쓰기용, 읽고 동시에 쓰기용으로 열어놓은 파일은 입출력을 마친 뒤 사용을 한다.
n 간단한 예제 프로그램
/* * 읽기와쓰기용으로파일을열기 * visual studio 2008 professional service pack1 * windows xp home edition service pack 3 */ #include <fstream> #include <iostream> using namespace std; int main() { char fileName[80]; /// 입력용으로사용할변수 char buffer[255]; cout << "file name: "; cin >> fileName; /// 쓰기용 ofstream fout(fileName); fout << "this line written directory to the file.....\n"; cout << "Enter text for the file:"; /// 파일뒤에개행문자를없앤다. cin.ignore(1,'\n'); /// 사용자입력을받는다. cin.getline(buffer, 255); /// 파일에쓴다. fout << buffer << "\n"; /// 파일객체를닫고다시열기를기다린다. fout.close(); /// 읽기를위해서스트림을다시연다 ifstream fin(fileName); cout << "Here's the contents of the file: \n"; char ch; while (fin.get(ch)) { cout << ch; } cout << "\n"; cout << "### End of file contents ###\n"; fin.close(); return 0; } |
출처 : http://yuihorie.tistory.com/85
'기술자료 > C C++' 카테고리의 다른 글
[賢彬] C++ 에서 멤버 함수포인터 사용하기 (1) | 2009.08.10 |
---|---|
const 에 대해서 알아봅시다.. (1) | 2009.08.07 |
[賢彬][c++]도대체 가상함수는 어디에다 쓰는 것일까?? (1) | 2009.08.07 |
[C++] 연산자 오버로딩 (1) | 2009.08.05 |
[賢彬][C++] 인라인(inline) 함수 (1) | 2009.08.04 |
동적할당으로 스텍 만들기 (1) | 2009.08.03 |
extern "C" (2) | 2009.07.25 |
VC++ 6.0의 getline() 함수 버그 패치 (2) | 2009.07.24 |