[질문]가입 인사 겸 C++에 대한 질문...(추가질문 타블렛pc)

샨토토의 이미지

안녕하세요
이번에 새로 가입하게된 샨토토라고 합니다.

리눅스를 사용하게되면서
c언어과 c++를 공부하게되어 이전부터 KLDP사이트를 많이 애용하였는데요.
검색에 드디어 조금씩 한계(?)를 느끼고
가입하게되었습니다.

지금의 목표라면..
초보주제에 이런말을 해도 될지 모르겠지만 리눅스에서 조그만한
게임을 만들고 싶습니다.

크지막지한 게임이 아니라도
일단 테트리스 그런 자그만한 게임이라도 제 손으로 구현해 보고 싶어요.

실력은 정말 바닥이지만
여러모로 잘 부탁드려요.


원래대로라면 이 공부를 윈도우 환경에서 해야되는데
리눅스 고집으로 리눅스 환경으로 어떻게든 하고 있습니다.
(예제가 전부 윈도우 비쥬얼 베이직 환경으로 다 만들어져 있어서..)

C++ 기본 강좌보면서
궁금한게 몇개 생겨 회원님들의 조언을 듣고자 왔는데요

우선 원본에서 제시한 작성문입니다.

#include <stdio.h>
#include <conio.h> 
 
void main()
{
        char mun;
        int count;
 
        for( count= 0, mun = 'A' ; mun <= 'Z' ; mun++, count++ )
        {
                if( count > 4 )
                {
                        printf("\n");
                        count= 0;
                }
        printf("%c = %d\t", mun, mun );
        }
 
        getch();
}

이 것을 컴파일 할시에

g++ -o see see.cpp 
see.cpp:2:20: error: conio.h: No such file or directory
see.cpp:4: error: ‘::main’ must return ‘int’
see.cpp: In function ‘int main()’:
see.cpp:19: error: ‘getch’ was not declared in this scope

이런 문제가 발생하더군요.

나름 검색(?)을 통해서 제 나름대로 고쳐보다 해결을 보았습니다만
몇몇 햇갈리고 저 혼자로서는 왜 이렇게 바꾸어야 하는지 잘 이해가 안되어
조언을 얻고자 합니다.

vim으로 아래와 같이 수정하였습니다.

#include <stdio.h>
//#include <conio.h> 예전 Dos용 Turbo C컴파일러에 있던 함수입니다.
 
main()
{
        char mun;
        int count;
 
        for( count= 0, mun = 'A' ; mun <= 'Z' ; mun++, count++ )
        {
                if( count > 4 )
                {
                        printf("\n");
                        count= 0;
                }
        printf("%c = %d\t", mun, mun );
        }
/*getch(); 리눅스에서는 지원이 안되는듯
역활은 키보드로부터 문자를 읽어들이지만 화면에는 나타내지 않
역활을 합니다.*/
}

---------------------------------------------------
1. 우선 main()에 대한 개념부터 먼저 잡고 싶습니다.
검색을 하다 보면 void main()이라 써져있는 것도 있고
(void문은 제 리눅스에서 이상하게 컴파일이 안먹히더군요.)
int main()이라 써져있는 것도 있으며 그냥 main()이렇게 앞에 구문을 생략해서 써도 되던데..

커다란 차이가 있는것입니까?

확실하게 답변이 내려진 정보가 없어서...

2. #include
제가 공부하고 있는 예제문에 이런것이 보이던데..
리눅스상에서는 적지 않아도 작동이 되더군요.

없어도 아무 문제가 없는 것인지..
아니면 대채할 다른 명령어가 있는것인지 알고 싶습니다.

3.거의 2번과 같이 오는 문제같은데요. getch()를 넣어서 몇번이나 컴파일 해보았지만.
see.cpp:19: error: ‘getch’ was not declared in this scope이란 에러문만 돌아올뿐이더군요;;

리눅스상에서 대체할 명령어가 있는지 알고 싶습니다.

글이 길어진것 같아 죄송스럽네요..

마지막 질문으로 저같은 초보 c언어 지식을 익힌 사람이 도움이 될만한 무료 사이트를 알고 계시면 조언 부탁드리겠습니다.

그럼...

추가질문- 타블렛pc tc4400모델 사용중입니다.
타블렛 설정은 해주어서 압력감지 사용하기에 전혀 문제는 없으나
우분투(8.10사용중이랍니다.)에서 화면을 옆으로 돌리던가 위아래로 돌리던가 하면

마우스 맵핑이 이상하게 잡히더군요.
화면은 돌아간 상태인데 마우스는 디폴트 맵핑상태로 잡혀있어 돌려서 사용을 못할 지경입니다.

혹시 해결법 아시는 분...

한가닥 빛을 부탁드립니다.

calmperson의 이미지

1. main함수의 리턴값은 그 프로그램이 정상종료 되었는지 등을 알기위해 사용합니다. void를 쓰거나 아예 생략하고 프로그래밍 하는것도 가능하지만 int를 리턴값으로 쓰도록 권장한다고 알고있습니다. void를 쓰는것과 생략하는 것 사이에도 의미상 미묘한 차이가 있다는 글을 여기 kldp에서 본것 같은데요..
2. include 다음에는 안보이네요?
3. stdio.h에 있는 getchar 또는 getc 에 대해 찾아보시는 것이...
아! 그런데 C++네요? cin 으로 어떻게..
저도 잘 모르기 때문에.. 제 댓글에 틀린 부분 있으면 아마 다른분이 지적해 주실 겁니다 ^^

--
"그때의 두려움을 어찌 잊을 수 있으리오!"
왕이 말했다.
"하지만"
여왕은 말을 이었다.
"메모해 두지 않으면 잊고 말 겁니다."

"그때의 두려움을 어찌 잊을 수 있으리오!"
왕이 말했다.
"하지만"
여왕은 말을 이었다.
"메모해 두지 않으면 잊고 말 겁니다."

샨토토의 이미지

2번 질문에서 include다음이 삭제되어있네요.

#include 이것입니다.

어째서인지 리눅스에 gcc에서는 이 헤더를 못알아먹는것인가..
컴파일이 안되더군요.

삭제해주니 잘되구요.
이 헤더가 아무 기능도 없으면 뭐 필요는 없지만.
혹시 윈도우에서는 어떤 다른 기능을 보인다고 할때 리눅스상에서 대체할 헤더가 있나..

그런 궁금증에 질문하게되었습니다.

역시 1번같은 경우 그 핵심을 찾기가 힘들군요.
검색을 해도 토론의 끓이 없는 것처럼 그 답을 찾기가 힘들었습니다.

나름 그냥 있는대로(?)쓰는 수밖에 없는 것인가....

마지막으로 calmperson님 답변 진심으로 감사드립니다.

シャントット
「ヘッポコ君のくせによくできましたわ。
褒めてあげますわよ〜。」

シャントット
「ヘッポコ君のくせによくできましたわ。
褒めてあげますわよ?。」

cinsk의 이미지

conio.h는 DOS 시절 화면/키 제어를 위한 헤더입니다. Linux에서는 대신 ncurses.h를 씁니다. 다만, 함수 기능이 1:1로 대응하는 것은 아닙니다.

초보자라니 말씀드리지만, ncurses를 쓴 프로그램을 컴파일하려면 gcc를 실행할 때, 마지막에 -lncurses를 써 주어야 합니다. (시스템에 따라서 "-lncurses -ltermcap"을 써 주어야 할 수도 있음)

ncurses tutorial은 검색하면 꽤 나오기 때문에 생략하겠습니다.

--
C FAQ: http://www.eskimo.com/~scs/C-faq/top.html
Korean Ver: http://www.cinsk.org/cfaqs/

샨토토의 이미지

정보 정말 감사합니다^^

이제 갓 시작하여 뭐가 뭔지도 잘 모르겠지만
한번 열심히 해볼 생각으로 연습하고 있습니다.

다시한번 답변 감사드려요^^

シャントット
「ヘッポコ君のくせによくできましたわ。
褒めてあげますわよ〜。」

シャントット
「ヘッポコ君のくせによくできましたわ。
褒めてあげますわよ?。」

블루스크린의 이미지

.

-------------------------------------------------------------------------------
이 댓글(comment)의 수정 및 삭제를 위해 이 글에 답글(reply)을 쓰지 말아 주십시요.
의견이 있으시면 원 글에 댓글(comment)로 써 주세요.

Fe.head의 이미지

C++ 배울때 참고 하세요

http://www.java2s.com/Tutorial/Cpp/CatalogCpp.htm

-----------------------
과거를 알고 싶거든 오늘의 네 모습을 보아라. 그것이 과거의 너니라.
그리고 내일을 알고 싶으냐?
그러면 오늘의 너를 보아라. 그것이 바로 미래의 너니라.

고작 블로킹 하나, 고작 25점 중에 1점, 고작 부활동
"만약 그 순간이 온다면 그때가 네가 배구에 빠지는 순간이야"

샨토토의 이미지

영어에 많이 약하지만
열심히 참고해서 보겠습니다^^

프로그래머한테는 영어도 중요한 과목인것을 검색을 통해 알았으니까요

シャントット
「ヘッポコ君のくせによくできましたわ。
褒めてあげますわよ〜。」

シャントット
「ヘッポコ君のくせによくできましたわ。
褒めてあげますわよ?。」

Fe.head의 이미지

잘 보시면 영어 필요 없습니다 ㅎ

그냥 소스만 보시면 됩니다.^^

예를 들면.. string class 설명 링크

http://www.java2s.com/Tutorial/Cpp/0300__string/Defineastringvariableassignavalueanddisplayit.htm

리스트 사용법.
http://www.java2s.com/Tutorial/Cpp/0340__list/Fourconstructorsoflist.htm

-----------------------
과거를 알고 싶거든 오늘의 네 모습을 보아라. 그것이 과거의 너니라.
그리고 내일을 알고 싶으냐?
그러면 오늘의 너를 보아라. 그것이 바로 미래의 너니라.

고작 블로킹 하나, 고작 25점 중에 1점, 고작 부활동
"만약 그 순간이 온다면 그때가 네가 배구에 빠지는 순간이야"

샨토토의 이미지

아 그러고 보니 그렇군요^^

에프터 서비스(?) 감사합니다
근데 아직까지 제가 초보라서 그런지 생소한 소스들이 많네요^^:;

몇일동안 이 사이트에 묻혀(?)살아야 할듯

シャントット
「ヘッポコ君のくせによくできましたわ。
褒めてあげますわよ〜。」

シャントット
「ヘッポコ君のくせによくできましたわ。
褒めてあげますわよ?。」

댓글 달기

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