putty 에서의 오류

익명 사용자의 이미지

#include
#include

using namespace std;

int main() {

char select[5];
int minus[5][5];
int plus[5][5];

cout << "operator : " ;
cin >> select;

int (*array)[5] = new int [5][5];

for(int i = 0; i<5; i++) {
for ( int j=0; j<5; j++) {
*(*(array + i) + j) = i + j;
}
}

for ( int i =0; i<5; i++)
{
for ( int j=0; j<5; j++)
{
plus[i][j] = array[i][j] + array[i][j] ;
}
}

for ( int i =0; i<5; i++)
{
for ( int j=0; j<5; j++)
{
minus[i][j] = array[i][j] - array[i][j] ;
}
}

if(strcmp(select, "+") == 0){

cout << "[ " << array[0][0] << " " << array[0][1] << " " << array[0][2] << " "
<< array[0][3] << " " << array[0][4] << " ] "
<< " "
<< "[ " << array[0][0] << " " << array[0][1] << " " << array[0][2] << " "
<< array[0][3] << " " << array[0][4] << " ] " <

cout << "[ " << array[1][0] << " " << array[1][1] << " " << array[1][2] << " "
<< array[1][3] << " " << array[1][4] << " ] "
<< " "
<< "[ " << array[1][0] << " " << array[1][1] << " " << array[1][2] << " "
<< array[1][3] << " " << array[1][4] << " ] " <

cout << "[ " << array[2][0] << " " << array[2][1] << " " << array[2][2] << " "
<< array[2][3] << " " << array[2][4] << " ] "
<< "+"
<< "[ " << array[2][0] << " " << array[2][1] << " " << array[2][2] << " "
<< array[2][3] << " " << array[2][4] << " ] " <

cout << "[ " << array[3][0] << " " << array[3][1] << " " << array[3][2] << " "
<< array[3][3] << " " << array[3][4] << " ] "
<< " "
<< "[ " << array[3][0] << " " << array[3][1] << " " << array[3][2] << " "
<< array[3][3] << " " << array[3][4] << " ] " <

cout << "[ " << array[4][0] << " " << array[4][1] << " " << array[4][2] << " "
<< array[4][3] << " " << array[4][4] << " ] "
<< " "
<< "[ " << array[4][0] << " " << array[4][1] << " " << array[4][2] << " "
<< array[4][3] << " " << array[4][4] << " ] " <

cout << "Result " << endl;
for ( int i =0; i<5; i++)
{cout << " [ " ;
for ( int j=0; j<5; j++)
{
cout << plus[i][j] << " " ;
}
cout << " ] " < }

}

if(strcmp(select, "-") == 0){

cout << "[ " << array[0][0] << " " << array[0][1] << " " << array[0][2] << " "
<< array[0][3] << " " << array[0][4] << " ] "
<< " "
<< "[ " << array[0][0] << " " << array[0][1] << " " << array[0][2] << " "
<< array[0][3] << " " << array[0][4] << " ] " <

cout << "[ " << array[1][0] << " " << array[1][1] << " " << array[1][2] << " "
<< array[1][3] << " " << array[1][4] << " ] "
<< " "
<< "[ " << array[1][0] << " " << array[1][1] << " " << array[1][2] << " "
<< array[1][3] << " " << array[1][4] << " ] " <

cout << "[ " << array[2][0] << " " << array[2][1] << " " << array[2][2] << " "
<< array[2][3] << " " << array[2][4] << " ] "
<< "-"
<< "[ " << array[2][0] << " " << array[2][1] << " " << array[2][2] << " "
<< array[2][3] << " " << array[2][4] << " ] " <

cout << "[ " << array[3][0] << " " << array[3][1] << " " << array[3][2] << " "
<< array[3][3] << " " << array[3][4] << " ] "
<< " "
<< "[ " << array[3][0] << " " << array[3][1] << " " << array[3][2] << " "
<< array[3][3] << " " << array[3][4] << " ] " <

cout << "[ " << array[4][0] << " " << array[4][1] << " " << array[4][2] << " "
<< array[4][3] << " " << array[4][4] << " ] "
<< " "
<< "[ " << array[4][0] << " " << array[4][1] << " " << array[4][2] << " "
<< array[4][3] << " " << array[4][4] << " ] " <

cout << "Result " << endl;
for ( int i =0; i<5; i++)
{cout << " [ " ;
for ( int j=0; j<5; j++)
{
cout << minus[i][j] << " " ;
}
cout << " ] " < }

}

delete []array
array = NULL;

return 0;
}

visual studio 에서는 컴파일 에러가 안뜹니다

하지만 putty에서

In function ‘int main()’:
homework07.cpp:44:22: error: ‘strcmp’ was not declared in this scope
if(strcmp(select, "+") == 0){
^
homework07.cpp:101:22: error: ‘strcmp’ was not declared in this scope
if(strcmp(select, "-") == 0){

라고 나옵니다.
어떻게 해야 하나요??

세벌의 이미지

kldp에서 소스코드 입력할 때는 code 태그 써 주세요.
visual studio 에서는 잘 되는데 리눅스에서 안 된다면 표준 아닌 함수를 썼을 가능성이 높아요.
putty 는 컴파일러가 아닙니다. 윈도에서 리눅스 서버에 접속할 때 쓰는 도구죠.

http://oops.org/?t=lecture&sb=beginner&n=2
참고하여 다시 질문해보셔요.

김정균의 이미지

visudal stuido 는 compiler 를 포함하고 있는 ide 이고, putty 는 터미널 프로그램 입니다. Putty 로 compiler 를 실행할 수는 있지만 pytty 라는 이름으로는 compile 환경에 대한 정보를 줄 수 없습니다.

그러므로, build 가 되지 않는 OS 및 compiler 를 확인해서 알려 주는 것이 답을 얻는데 도움이 될 겁니다. (물론 에러 메시지로 보아서는 linux 에서 gcc(g++) 를 사용한 것 같습니다만..)

그리고

homework07.cpp:44:22: error: ‘strcmp’ was not declared in this scope

메시지로 보아서는 strcmp 에 proto type이 declare 되지 않았다는 메시지인데, 그렇다면 include header 파일을 확인해 봐야 합니다. 님이 올리신 코드를 보면 include 부분에 나타나지를 않죠.

질문을 하실 때, 글 입력 페이지 제일 상단에, 그리고 글 입력하는 폼에 코드를 입력할 때는 <code> tag 를 사용하라고 잘 보이게 안내를 하고 있지만, 대부분의 분들이 이런 안내를 무시합니다. 그러니 답변을 잘 받을 수도 없게 되는 것이지요.

어찌하든,, 문제는 strcmp 가 선언이 되어있는 헤더 파일이 없어서 발생하는 것일테니, string.h 를 include 해보세요.

#include <string>

님처럼 code tag를 사용하지 않으면 아래처럼 보입니다.

#include

Stephen Kyoungwon Kim@Google의 이미지

C++에서는 아마 아래가 권고되는 include일 것 같습니다.

#include <cstring>

댓글 달기

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