제가작성한 거 확인점 해주세요,,자꾸 안되서,,

nidle의 이미지

개별적으로 하면 함수는 다컴파일되더라구요,, 근데 이렇게 합쳐서 하면.. file open error이나와
요, 왜그런건지.알려주세요
그리구 저는 볼랜드c 3.2윈도우용을 쓰고 있습니다..

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

/*알파벳 확인 함수*/

int alp(char c)
{
if ((c>='a' && c<='z') || (c>='A' && c <= 'z'))
return(1);
else
return(0);
}
/*한줄읽기함수1*/

readline1(char buffer1[])
{
char ch;
int i=0;
FILE *aa;
aa = fopen("a.txt","r");
if( aa == NULL )
{
printf("file open error \n");
exit(1);
}


do {
ch=getc(aa);
buffer1[i]=ch;
++i;
}
while(ch != '\n');

buffer1[i -1] = '\0';

}


/*단어의수 센다 함수*/

int count(char string[])

{
int i,looking =1,wordc =0;

for(i=0;string[i] !='\0'; ++i)
if(alp(string[i])){
if(looking){
++wordc;
looking=0;
}
}else
looking=1;

return(wordc);
}

main()
{

char text[81];
int end=0, total =0;

while ( ! end) {
readline1(text);

if (text[0] == '\0')
end=1;
else
total+=count(text);

}
printf("%d",total);

}

a.txt: apple
pineapple
strawberry
tomato
orange
watermelon
melon
mango
cherry
grapes
b.txt :embryo
plum
banana
lemon
strawberry
orange
watermelon
peach
mango
cherry
grapes

stoneshim의 이미지

errno 를 찍어보세요

우리 모두 리얼리스트가 되자. 그러나 가슴에 이룰 수 없는 꿈을 가지자

Dr_stein의 이미지

file open error가 나는곳이 두곳이상인거 같은데 어느곳에서 나는건지
알수있게 찍어야 하지 않을까여~

앞마당 먹고 시작한 저그의 8할은 뮤탈 테크를 먼저 탄다. 하지만 나머지 2할때문에 항상 스켄이 모자란다. - _-;

고물의 이미지

파일을 읽어들이는 부분에서 단순히 '\n' 값만 체크를 하는군요..

마지막일 경우에는 EOF를, 에러가 발생했을 경우에는 에러 값을 반환하는데.

여기에 대한 처리가 없군요..

size를 체크해서 그만큼 읽어들이구 말던가..

아니면 종료점에 대한 처리를 해야 될 것 같군요..

nidle의 이미지

답변감사합니다.,, 그런데 이해를 못하겠어요,, 설명좀 해주심안되나요

shpark05의 이미지

지금 올리신 소스를 보니, 영원히 루틴이 돌겠네염...헐 ,

지금 에러는 file open 숫자가 많아서 나오는 것입니다.
fclose(aa); 을 넣어보세염..

readline1 인가요 ? 여기 함수 탈출 직전에염..
그럼 에러는 나지 않겠지만, 영원히 값 못 얻으실것 같네염..

그리고, 제가 좀 햇갈려서 소스를 이해하기 힘든데
무슨 일을 하는 프로그램이죠 ? 아마 알파벳 문자 값만 읽어서
갯수를 세는 것 같은데,

이렇게 구조를 해 보세염..

해더파일에는 #include <error.h> 넣으시기 바랍니다.


if ( ( fp = fopen("a.txt","r") ) ==NULL )
{
perror("file not found\n");
exit(1);
}

while( ! feof(fp) ) {

fgetc(fp) // 원하시는 문자 하나씩 읽으시고염

isalpha( ) // 알파벳트인지 검사하세염

}

만약 fgets 을 쓰신다면, <string.h> 해더추가하시고
strlen( ); 함수 사용하시면 더 편할 것 같습니다.

나중에 더 멋진 소스 보여주세염...

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.