#include "apue.h"
#include <fcntl.h>
#include <stdio.h>
#include <unistd.h>
#define BUFFSIZE 8192
int
main(void)
{
int i;
int fd;
int n;
char filename[255];
char filepath[500]="/home/cic/sysprog/";
char buf[BUFFSIZE];
int x=1; //무한루프 변수
printf("만들파일 이름을 입력하시오 :");
scanf("%s",filename);
strcat(filepath,filename);
fd = open(filepath, O_RDWR | O_CREAT | O_EXCL, 0644);
close(fd);
while(x>0){
printf("1.내용입력\n2.입력내용 터미널로 출력\n3.종료\n==>");
scanf("%d",&i);
switch(i){
case 1:
fd = open(filepath, O_WRONLY| O_APPEND);
while((n=read(STDIN_FILENO, buf, BUFFSIZE))>0)
if(write(fd, buf, n) != n)
printf("write error\n");
if(n<0)
printf("read error\n");
close(fd);
break;
case 2 :
fd = open(filepath, O_WRONLY );
case 3:
x=-1
break;
}
}
exit(0);
}
대충 내가 이래 짜봣는데 일단 case 1은 이어쓰기로 내가 원하는 파일생성후 그안에 내용을 이어쓰는거잔아
거기에 이제 입력을 그냥 터미널에서 ./a.out으로 해서 치면되는데
만약 내가 여기 값을 맨왼쪽부터 이름,국어,수학 점수라고치면 아래처럼
a 70 80
b 50 70
c 40 60
d 50 30
이렇게 쳣어 그리고 이제 case 2에서 이 값들중 내가 원하는 값들만 터미널로 출력하고 싶거든?
예를들면 터미널에서 ./a.out 쳐서 case1로 저위에 내용처럼 쳐준후 2를 쳐주면 이제 case2가 실행되서 국어점수가 50점 이상인 것에 이름만 출력하고 싶다 이런건데
case2를 어떤식으로해줘야함??
txt파일에서 터미널로 어케 뽑아가주냐? 필드별로되냐??
터미널에서는 awk쓰면 txt파일꺼 걍 뽑을수잇는데 역은 안됨?
소스가 다닥다닥 붙어있어서 읽기 귀찮지만 아무튼 case 1에서 텍스트파일로 저장된 값을 어떻게 처리하냐는 거죠? 파일을 읽어들여서 가공한다음 표준출력해야죠.. 공백값 기준으로 버릴 건 버리고 남길건 남겨서 처리해보세요.
a의 배열, b의 배열, c의 배열 등 만든 다음 배열의 2번째 값이 몇번 이상이면 해당배열을 출력하는 식으로 만들면 될 것 같아요.
되서->돼서 (되어 = 돼임) [리듬 맞춤법 봇♬]