1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <iostream>
#include <string>
#include <fstream>
 
using namespace std;
 
void main()
{
    std::string macbuf[10];
    
    ifstream fin{ "mac.txt" };
    
    if (fin.fail()) {
        cout << "파일 오픈에 실패했습니다." << endl;
    }
 
    // 이 부분은 eof를 이용할 수도 있음
    // 그런데 원본 코드에서 4개만 입력받고끝이라 이렇게함.
    for (int i = 0; i < 4; i++)
        getline(fin, macbuf[i]);
 
    fin.close();
 
    cout << macbuf[0<< ' ';
    cout << macbuf[1<< ' ';
    cout << macbuf[2<< ' ';
    cout << macbuf[3<< ' ';
 
    return;
}
cs



cout << macbuf[0] << 다음엔 널문자를 넣은겁니당.


아무튼 원본에서 printf("%s",macbuf[0]);으로 되어있었는데, printf는 stirng을 이용한 문자열은 출력을 해주지 못합니당

c 스타일의 문자열은 통상 char* 로 되어있는 거구요

c++ 스타일의 문자열은 통상 string을 의미합니다.

두 차이라면 char*은 자료형을 그대로 가져다 쓰는 거구요 따라서 strlen이라든지 이러한 함수들이 외부에 있고 가져다 사용합니다.

string도 내부엔 char* 자료형이 있겠지만 string str; str.size(); 이런게 가능한 클래스구요 컨테이너라고 보통 말합니다.