Visual C++ 6, 싸구려!

cppig1995의 이미지

VC++ 6은 싸구려군요. :evil:

오늘 제 16회 정보올림피아드 지역본선 연습을 위해 VC++ 6으로 프로젝트를 했습니다.
Input.txt에 난장이 7명의 키가 있을 때 가장 큰 2명 키를 Output.txt로 엮습니다.
단, 모든 난장이의 키는 1m 미만... :twisted:

Line 05 FILE *fo = fopen("Output.txt", "wt");
~~~~~~~
Line 45 fprintf(fo, "An Error Occured!"); // No Error.
Line 50 fprintf(fo, "Succeeded") // No Error.
~~~~~~~
Line 56 fprintf(fo, "Unknown Error"); //Error

Quote:
Line 56 : Compile Error C2065 : 'fo' - undeclared identifier

다른 오류는 없습니다. 45, 50 줄에도 없구요. 황당하지요?
역시... 왜 VC++ 6을 골랐을까?
내부 버그일까 해서 Service Pack 6 설치해 봤습니다. 변경 사항 없음.

mithrandir의 이미지

45행에는 오류가 날 가능성이 없어보이는군요.

전체 소스를 볼 수 있을까요?

언제나 삽질 - http://tisphie.net/typo/
프로그래밍 언어 개발 - http://langdev.net

익명 사용자의 이미지

50 행에 세미콜론이 없군요

mirr의 이미지

사실상 vc++ 에 어시스트 등 깔고 사용하면 그만큼 편리한 경우 없던걸요..
Ctag와 Screen, Vim 의 혼합형을 보는듯한 느낌에,
각 변수에 대한 예상값과, 함수의 원형을 쉽게 찾아가는 것등등...
STL 사용하는모습도 매우 편리해 보였구요...
실제로 능숙하게 VC를 사용하는 사람의 코딩모습을 관찰해 봤는데
엄청난 스피드와 간결함은 꽤나 매력적이었습니다.......

편리한 기능면에선 꽤나 좋아보였었는데요~?
어떤 프로그램에 대해 무조건 싸구려라고 하는것은 좀 잘못된 편견이지 않나 합니다.
아무리 엠에스꺼라고 해도 말이지욤~~~ :wink:

어쨌든...쎄미콜론 빠진거 글올릴때의 오타라면 전체소스 공개를 해주시는것도....

내 마음속의 악마가 자꾸만 나를 부추겨.
늘 해왔던 것에 만족하지 말고 뭔가 불가능해 보이는 것을 하라고 말야.

newfrog의 이미지

Visual C++로 프로그래밍을 많이 하고 있는 편인데...
Debug하기도 편리하고... 너무 좋던데요.
(^^ )a 요즘은 API프로그래밍 하다보니, 편리한 각종 기능에...
예전에 메모장, vi 코딩 시절이 잊혀지기도...

컴파일러가 오래되어서 요즘은 표준 문법은 다소 못 따라오지만,
MS사 대단하다는 생각하면서 전 사용하고 있습니다.

I'm a dreamer.
:-) Do everything with all my passion.

ixevexi의 이미지

인텔리 쎈쓰!!!

vi와 ctag으로 안되는 것도 있어요 ㅠ.ㅜ
자동멤버 함수 추천?? 이런거요..

리눅스 플랫폼에서 한번 써볼려구 이클립스 깔았더니..
이녀석 엄청 멍청하대요 -_-;;

C++, 그리고 C++....
죽어도 C++

doldori의 이미지

주석을 단 것을 보니 어디가 에러인지 묻는 것이 아니라 엉뚱한 곳에서 엉뚱한
에러 메시지를 내는 것을 불평하시는 듯 하군요.

익명 사용자의 이미지

지역 정보 올림피아드는 한국 정보 올림피아드랑 회수가 다른가요?

비행소년의 이미지

위의 소스만 가지고 에러는 안 나는군요.

VC++6만 사면 싸지요... 델파이에 비하면. :D

높이 날다 떨어지면.
아푸다 ㅡ,.ㅡ

htna의 이미지

50과 56줄 사이에 무엇이 있느냐 따라 에러가 다르리라 생각합니다.
머 제가 컴파일러 잘 아는것은 아니지만,
문맥다니위로 에러를 내지 않을까 생각합니다만, 라인단위가 아니라요...
예를들어...

line 1: int k =
line 2:     3 + (
line 3:     4 /
line 4:     5)
line 5:     6 +
line 6:     5;

이때 에러가 4혹은 5번째에 나야 하는지, 아니면 6번째에 나야하는지...
같은 문맥으로 본다면...
line 1: fprintf(fo, "test")
line 2: fprintf(fo, "test2");

이때 에러가 line 1에 나야 하나요?

WOW Wow!!!
Computer Science is no more about computers than astronomy is about telescopes.
-- E. W. Dijkstra

shyxu의 이미지

싸구려 VC6++로 컴파일이 잘 안되시면,
볼랜드 터보C로 컴파일해보세요 =3=3

Since 2003.
지금은 맥유저...
---
http://jtjoo.com

익명 사용자의 이미지

line 1: fprintf(fo, "test")
line 2: fprintf(fo, "test2");

1에서 나야할듯....

컴파일러 입장에서 끝났다는 표시가 없으니
fprintf(fo, "test")fprintf(fo, "test2");
와 동일하게 볼것이고..

익명 사용자의 이미지

만약 g++ 에서 같은 현장을 발견했을때도 싸구려라고 폄하 했을까여?

남을 비하한다고 본인이 높아지는것은 아닙니다..

yasoo의 이미지

line 1: int k =
line 2:     3 + (
line 3:     4 /
line 4:     5)
line 5:     6 +
line 6:     5;

맞아요.. 저도 몇번이나 사용해 보았지만...
MS 의 물건이 라인단위의 오류가 아니였어요...

GCC 도 마찮가지였구요....
그렇다면 GCC 도 잘못된건가요? ^^
그건 아니라고 봐요....
어떠한 프로그램을 사용하는데는....
그걸 이러이러한 기능으로 내가 사용한다는게 아니라...
이 프로그램에 어떻게 하면 더 좋은 기능을 낼수 있을까?
하는게 우선인거 같아요.... 프로그램을 탓하기 보다는...
자신을 그 프로그램에 마출수있는 능력이 된뒤에...
그 프로그램을 지적하는.... 그런 사람이.. 필요하지 않을까 싶어요..

뭐 저도 그리 프로그램을 잘하는 편은 아니지만... ^^

그래도 저렇게 비슷한 위치에서라도 찾아주는게 어디예요~ ㅎ
저런거 없이 짠분들도 많으실텐데 ^^

Can You See 1% of chance??
So that is MY WAY !!!

tinywolf의 이미지

솔직히 오류는 컴퓨터가 잘못을 알아먹기 시작한 지점에서 표시를 해주니..

저도 만들다 보면 대개의 오류가 나는 위치가 실제로 실수한 지점이 아니죠..

그 줄부터 이전 줄을 차근차근 봐야지만 아는...

전 디버거 같은 걸 잘 못써서.. :oops:

파일로 로그를 찍는 매크로 같은걸 만들어서 사용합니다..

그래서 오류가 나면 매줄마다 찍어보곤 하지요.. ㅎㅎ

ㅡ_ㅡ;

cppig1995의 이미지

문제는 똑같은 코드를 터보 C에서 돌리니 쌩쌩 돌아간다는 겁니다..

Real programmers /* don't */ comment their code.
If it was hard to write, it should be /* hard to */ read.

Prentice의 이미지

살인이 일어났습니다. 경찰은 엉뚱한 곳에서 수사를 하고 있습니다.

같은 일이 일어나도 옆의 나라에서는 완전범죄가 성립한다는 점이 문제입니다.

엥? 여긴 프로그래밍 QnA란인데요..

익명 사용자의 이미지

사실 gcc, vc 왔다갔다 하다 보면,

vc에서 선언 관련에서 문제가 생기면,
vc가 어뚱한 오류메세지를 내는 경우가 종종 있더군요.

자주 접해보면,
원인 추정이 금방 되는데,
처음 보는 사람들은 당혹스럽죠.

shji의 이미지

앞 문장에 오류가 있어서 에러가 나는 것이 당연한 상황인 것
같은데요.. VC++ 쓰면서 이유없이 오류를 내는 경우는 없었습니다.
VC++이 다른 툴들에 비해 싸지만.. 싸구려는 아닌것 같은데요..
구매비용 없이 사용하는 gcc도 좋은 컴파일러입니다..
디버깅을 할 때 알고 보면 자신이 문제였던 경우가 많죠.. 사소한
구두점 하나 세미콜론 하나 잘 못 써서 며칠 헤메는 경우도 많구요..
남의 코드를 의심하기 전에 항상 자신의 코드를 의심하고 검증하는
것이 저의 방식입니다.. :-)

cynicjj의 이미지

cppig1995 wrote:
문제는 똑같은 코드를 터보 C에서 돌리니 쌩쌩 돌아간다는 겁니다..

어떤 코드인지 무척 궁금한데요.

코드 조각이라도 볼 수 없을까요?

익명 사용자의 이미지

세미 콜론 빼먹는 애러는 당연히 다음줄에서 나지 않나요?
세미콜론이 없다면 계속 이어지는 구문으로 알기 때문일껍니다

kihongss의 이미지

제 경험이 짧아서 그런지,
아직까지 VC++ 컴파일러가 거짓말하는 경우는
못봤답니다. :lol:
VC++ 6이 98년에 나왔죠?
서비스팩 6까지 나온것도 그렇고,
허구헌날 새로운 툴이 쏟아지는 요즘같은 시대에
VC++ 6처럼 오랫동안 사랑(?) 받는 툴도 드문것 같군요.
VC++ 6이후에, 2번이나 새버전이 나오고 3번째 버전이
베타2까지 나온걸로 아는데, VC++ 6의 생명력이
언제까지 갈까 궁금하군요.

litdream의 이미지

Anonymous wrote:
세미 콜론 빼먹는 애러는 당연히 다음줄에서 나지 않나요?
세미콜론이 없다면 계속 이어지는 구문으로 알기 때문일껍니다

초보적 생각이 나는군요.
눈 벌개져서 숙제하다가, 에러가 어디야~~ 하고 헤메다가 보면,
세미콜론... 두둥..
그렇지만, 한때 VC++ 을 열심히 썼었는데, 싸구려라고 하기에는..
좀 기능도 많고 좋던걸요? 흐흐흐.

삽질의 대마왕...

익명 사용자의 이미지

컴파일러를 너무 신용하는것은 너무 위험한듯 하네요....

컴파일러가 못잡은 에러 찾다보면........... : :(

익명 사용자의 이미지

VC++만 싸구려인건 아닙니다.
gcc도 parser error before XXX의 압박이 대단하죠-_-;

익명 사용자의 이미지

vc++ 6.0 싸구려 같이 보이진 안네요.
돈가치를 충분히 할듯.

컴파일러와 툴이 너무 완벽해지면 개발자들의 입지가 좁아져요 ㅎㅎ

진입장벽이 높아야.... :(

futari의 이미지

정말 이해할 수 없는 바보같은 문제가 일어날 때도.
잘 찾아보면
대부분 사람이 문제죠 ㅡㅡa
1%확률을 가정하고 컴파일러 탓을 하면 뭘 잘못했는지 모르고 넘어갈 수 밖에 없더군요 :shock:

-------------------------
The universe is run by the complex interweaving of three elements: matter, energy, and enlightened self-interest.
- G'kar, Babylon 5

chadr의 이미지

cynicjj wrote:
cppig1995 wrote:
문제는 똑같은 코드를 터보 C에서 돌리니 쌩쌩 돌아간다는 겁니다..

어떤 코드인지 무척 궁금한데요.

코드 조각이라도 볼 수 없을까요?

저도 그 코드가 궁금하군요 :D

-------------------------------------------------------------------------------
It's better to appear stupid and ask question than to be silent and remain stupid.

cppig1995의 이미지

ㅋㅋ 세미콜론 빼먹은 건 오타입니다.
진짜 55줄 오류가 세미콜론 때문이라면 왜 51에서 오류가 나지 않았겠습니까?

Real programmers /* don't */ comment their code.
If it was hard to write, it should be /* hard to */ read.

Prentice의 이미지

그러면 프로그래밍 문답 게시판에 글을 올리시면서 질문하실 내용도 포함을 안시키셨다는 말씀이시군요.. 본 글의 자유게시판으로의 이동을 건의합니다.

creativeidler의 이미지

전체 소스를 봐야 컴파일러가 거짓말을 했는지 아닌지 판단할 수 있을 것 같네요. 근데 VC++ 6은 신뢰도가 이미 충분히 검증된 컴파일러인데 거짓말을 했으리라 생각되진 않네요.

nthroot의 이미지

올림피아드 잘보세요. :?

------식은이 처------
길이 끝나는 저기엔 아무 것도 없어요. 희망이고 나발이고 아무 것도 없어.

익명 사용자의 이미지

오래써보면...VC 가 정말 대단하다는 걸 알게될겁니다.

COM,ACTIVEX 콘트롤 ,ATL, MFC,DDX...

거기에 사소한 팁들이 많이 숨겨있는 ,정말 괜찮은 통합환경까지..

제가 생각하기엔 최고인거 같은데요.

거기에 비쥬얼 어시스턴트까지 붙이면,

소스 인사이트 정도의 막강함이 된다고 생각합니다.

초보 때 주로, 컴파일러 에러 운운하지만...

VC6 가 나온지 한참 되었고, 세계적으로 무수히 많은 사람들이 쓰는데,

버그가 쉽게 발견될리가 없지요.

한번 오래써보세요.

돈주고 사서써도 절대로 아깝지 않은 제품입니다.

댓글 달기

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