Friday, March 16, 2007
C언어] 파일에 줄번호, 행번호 (줄 번호, 행 번호) 붙이기 Line Number Text File
지정해 준 텍스트 파일의 각 줄마다 행 번호를 넣는 C소스 코드입니다. 텍스트 파일을 처리하는 C 코드 작성 공부에도 유용합니다.
다음 예제는 명령행 옵션으로 지정해 준 test.txt 라는 텍스트 파일의 각 행에 줄 번호를 붙여 화면에 출력합니다.
출력 결과를 파일로 저장하려면, 소스를 컴파일한 후
example.exe test.txt > out.txt
이렇게 재지향을 하면 out.txt 라는 파일로 결과가 저장됩니다.
소스 파일명: example.cpp
※ 아래 박스 클릭 후, 키보드 화살표 키로 좌우 스크롤 가능함
위의 소스를 컴파일한 후,
test.txt 라는 파일을 명령행 옵션으로 지정하여
example.exe 를 실행한 결과 화면:
참고: ▶▶ [C언어 기초 예제] 실행할 때 지정해준 파라미터(옵션; 인수, Arguments) 얻기, 해석하기
참고: ▶▶ C언어 예제] 텍스트 파일 읽기; 도스창 화면에 파일 내용 출력; 도스 type 명령
행 번호, 줄 번호 추가 유틸리티 (온라인 버전): ▶▶ 행번호 줄번호 붙이기 툴; 소스 텍스트 파일 각행마다; Text Line Number Tool
다음 예제는 명령행 옵션으로 지정해 준 test.txt 라는 텍스트 파일의 각 행에 줄 번호를 붙여 화면에 출력합니다.
출력 결과를 파일로 저장하려면, 소스를 컴파일한 후
example.exe test.txt > out.txt
이렇게 재지향을 하면 out.txt 라는 파일로 결과가 저장됩니다.
텍스트 파일의 각 줄마다 행번호 추가 소스
소스 파일명: example.cpp
※ 아래 박스 클릭 후, 키보드 화살표 키로 좌우 스크롤 가능함
#include <stdio.h>
#include <stdlib.h> // exit() 함수를 위해
#define MAX_COLS 32768
int main(int argc, char *argv[]) {
FILE *in;
char s[MAX_COLS]; // 행이 1줄씩 임시로 저장될 버퍼
unsigned int counter = 1; // 행번호가 저장되는 변수
if (argc == 1) { // 옵션이 없으면 도움말 출력하고 종료
fputs("\nHelp: program_name <file_name>\n", stderr);
exit(1);
}
if ( (in = fopen(argv[1], "rt")) == NULL) { // fopen() 함수로 파일 열기
fprintf(stderr, "\nCannot open input file: %s\n", argv[1]);
exit(1); // 모든 파일 닫고, 프로그램 종료
}
while (fgets(s, MAX_COLS, in) != NULL) { // 읽기 시작: 프로그램의 본체
printf("%4d: %s", counter, s); // 한 줄씩 화면에 출력
counter++; // 행 번호 1씩 증가
}
fcloseall(); // 모든 파일 닫기
return 0;
}
#include <stdlib.h> // exit() 함수를 위해
#define MAX_COLS 32768
int main(int argc, char *argv[]) {
FILE *in;
char s[MAX_COLS]; // 행이 1줄씩 임시로 저장될 버퍼
unsigned int counter = 1; // 행번호가 저장되는 변수
if (argc == 1) { // 옵션이 없으면 도움말 출력하고 종료
fputs("\nHelp: program_name <file_name>\n", stderr);
exit(1);
}
if ( (in = fopen(argv[1], "rt")) == NULL) { // fopen() 함수로 파일 열기
fprintf(stderr, "\nCannot open input file: %s\n", argv[1]);
exit(1); // 모든 파일 닫고, 프로그램 종료
}
while (fgets(s, MAX_COLS, in) != NULL) { // 읽기 시작: 프로그램의 본체
printf("%4d: %s", counter, s); // 한 줄씩 화면에 출력
counter++; // 행 번호 1씩 증가
}
fcloseall(); // 모든 파일 닫기
return 0;
}
위의 소스를 컴파일한 후,
test.txt 라는 파일을 명령행 옵션으로 지정하여
example.exe 를 실행한 결과 화면:
D:\Z>cl /nologo example.cpp
example.cpp
D:\Z>example.exe
Help: program_name <file_name>
D:\Z>example.exe test.txt
1: 가나다라
2: 마바사아
3:
4: 철수는 중국집에서 자장면을 시켜 먹었습니다.
5:
6: 그리고 맹구는 학교에 갔습니다.
7:
8:
9: 철수는 학교에 가지 않고
10: 하루 종일 게임만 했습니다.
11:
12: 맹구는 방과 후 철수를 만났습니다.
13:
14: 철수는 맹구와 게임을 했습니다.
15:
D:\Z>example.exe test.txt > out.txt
D:\Z>
example.cpp
D:\Z>example.exe
Help: program_name <file_name>
D:\Z>example.exe test.txt
1: 가나다라
2: 마바사아
3:
4: 철수는 중국집에서 자장면을 시켜 먹었습니다.
5:
6: 그리고 맹구는 학교에 갔습니다.
7:
8:
9: 철수는 학교에 가지 않고
10: 하루 종일 게임만 했습니다.
11:
12: 맹구는 방과 후 철수를 만났습니다.
13:
14: 철수는 맹구와 게임을 했습니다.
15:
D:\Z>example.exe test.txt > out.txt
D:\Z>
참고: ▶▶ [C언어 기초 예제] 실행할 때 지정해준 파라미터(옵션; 인수, Arguments) 얻기, 해석하기
참고: ▶▶ C언어 예제] 텍스트 파일 읽기; 도스창 화면에 파일 내용 출력; 도스 type 명령
행 번호, 줄 번호 추가 유틸리티 (온라인 버전): ▶▶ 행번호 줄번호 붙이기 툴; 소스 텍스트 파일 각행마다; Text Line Number Tool
tag: cpp
C언어 | C/C++ (Visual C++)
<< Home