제가 짠 건데요... 좀 봐주세요요

croshong의 이미지


C언어 왕초보중에 왕초보입니다..

파일1
CID_10007 Gid_4128
CID_10021239 Gid_5468
CID_1046 Gid_1029
CID_1046 Gid_3658

파일2
CID_10021239 CID_77999 1.000000
CID_1046 CID_1046 1.000000
CID_10631 CID_6166 1.000000

목적은 파일 2를 이용해서 파일 1의 내용을 좀 걸러내는것입니다 예를들어 CID_10021239 CID_77999 1.0000 이 파일 2에 있으니까 파일1에서는 다른것들은 다 없어지고
오직 CID_10021239 Gid_5468 만 출력하게 하는것이 제 목표입니다 그 목표아래서 담과 같은 코드를 한번끄적여봣습니다
.
.
.
/
float tan; char cid[120],cid1[120],col1[120],col2[120];
//int col1;
n = 0;
i = 0;
while (1) {
if (!fgets(line, 1200,infile)) break;
memset(col1,'\0',120);
memset(col2,'\0',120);
sscanf(line,"%s %s",col1,col2);
while (1) {
if (!fgets(line, 1200,infile1)) break;
sscanf(line,"%s %s %f",cid,cid1,&tan);
if(strcmp(cid,col1)==0) printf("%s %s\n",col1,col2);
}
}

.
.
.
제 생각에 중요한 부분이라고 생각되는부분인데요 여기서 infile이 파일1 이고 infile1이 파일2 입니다
문제는 첫번째 while 루프에 들어가서 파일1의 첫줄을 읽어들인후 다시 안쪽의 while 루프로 들어가서 읽어들인 파일1의 첫줄과 파일2의 모든내용을 비교한후 안쪽의 while 루프를 끝낸후
파일1의 다음줄을 읽는게아니라 아주끝내버린다는겁니다. 결과가 전혀출력이되지않는거죠
기본적인 문제인거같긴한데 아직 제수준으로는 잘모르겟네요
고수님들의 조언부탁드립니다다

kgcrom의 이미지

작성하신 소스를 봐서는

첫번째 while문때문에 종료되는게 아니라 안쪽 while문때문에 종료되는것으로 보입니다.

원하시는 작업을 하시려면
두번째 while문에서 작업을 다 진행한후에 fseek, rewind를 이용해서 처음으로 이동시켜야합니다.

왜 하는지 궁금하다면 http://www.joinc.co.kr/modules/moniwiki/wiki.php/man/3/fseek 를 참고하세요.

근데 매번 읽는것보다 infile1의 데이타는 메모리에 올리고 하는게 낫지 않을까요?

흘러가고있는 지금 이 시간에 충실하자.

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.