12장. 실습문제
1.
영문 텍스트 파일을 읽고, 영문 글자를 모두 대문자로 변환하여 저장하라. /etc/passwd 파일을 읽고, /tmp/new_passwd 로 저장함
#include <iostream>
#include <fstream>
#include <string>
#include <cctype> // toupper()
using namespace std;
// int main() {
// string line;
// ifstream file("/etc/passwd");
// }
int main(int argc, char* argv[]) {
string inputFilename, outputFilename;
if (argc == 3) { //argument가 3개인지 확인
inputFilename = argv[1];
outputFilename = argv[2];
} else {
cout << "Usage: " << argv[0] << " 원본 파일 새로운 파일" << endl;
return 0;
}
ifstream fin(inputFilename);
if (!fin) {
cout << inputFilename << "읽기 실패" << endl;
return 0;
}
ofstream fout(outputFilename);
if (!fout) {
cout << outputFilename << "읽기 실패" << endl;
return 0;
}
cout << "읽기 시작" << endl;
int ch;
while((ch = fin.get()) != EOF) {
ch = toupper(ch); // 소문자 -> 대문자
fout.put(ch);
}
cout << "저장 끝!" << endl;
fout.close();
fin.close();
}
C++
복사
2.
단어가 들어 있는 words.txt 파일을 읽어 단어별로 vector<string>에 저장하고, 단어를 입력받아 오직 한 글자만 다른 단어를 모두 출력하라. words에 없는 단어를 입력할 경우, ‘단어 없음'을 출력하고, exit를 입력할 경우 프로그램을 종료하라
C++
복사