file open 관련 질문요..

kknd345의 이미지

책에 대충 함수관련 설명은 있는데 제가 응용이 안되서 그러는데요..
도와주세요.

FILE *open;
open=fopen( "file.in","r");

으로 file.in 을 읽어 드리긴 했는데요..

file.in 내용입니다.

abcd
asdf
programming
simulrosot
#
10

제가 원하는건 무엇이냐면요..
# 발견 전까지는 한줄을 매 char형 배열에 넣고요.
# 뒤에는 a에 int 형을 집어 넣고 싶은데 어떻게 하면 될까요?

pynoos의 이미지

fgets 를 사용하여 한 줄씩 읽어보면 됩니다.

한줄씩 읽다가 # 가 나오면 상태를 전환하면 되죠.

litdream의 이미지

심심해서 한번 만들어 봤습니다.

#include <stdio.h>
#include <stdlib.h>

int main()
{
    FILE *f;
    char buf[80];
    int  mode = 0;

    f = fopen("file.in","r");
    while  ( fgets(buf, 80, f) != NULL)
    {
        if (buf[0] == '#')
        {
            mode ++;
            continue;
        }
        if (!mode)
        {
            char str[80];
            sscanf(buf, "%s", str);
            printf("String read: %s\n", str);
        }
        else
        {
            int i;
            sscanf(buf, "%d", &i);
            printf("Int    read: %d\n", i);
        }
    }
    return 0;
}

삽질의 대마왕...

hwandori의 이미지

char str[80];
int  iVal;
i = 0;
while( fscanf( open , "%c" , &str[i] ) != EOF ) 
	if ( str[i++] == '#' ) break;
str[i] = '\0';
fscanf( open , "%d" , &iVal );

저도 그냥..^^