mp3프로그램에서 error C2061: 구문 오류 : 식별자 'string'가 뜨네요;;

ansgur1979의 이미지

헤더파일에
void upVolume(int& vol);
void downVolume(int& vol);
void nextSong(int mode, int& curnum, int max);
void prevSong(int mode, int& curnum, int max);
int ffSong(int& cursong, int cursongmax);
void rewSong(int& cursong);
void changeSong(int num, string name, int time, int& curnum, string& curname, int& curtime, int& maxtime);
int selectOnList();

선언한 함수의 내용을 cpp에

#include <iostream>
#include <string>
#include "mp3header.h"
using namespace std;
 
 
 
void upVolume(int& vol) //만약 볼륨이 20미만이면 현재볼륨을 1씩 증가함
{ if(vol < 20) { vol++; } return ;
}
void downVolume(int& vol) //만약 볼륨이 0초과이면 현재볼륨을 1씩 감소함
{ if(vol > 0) { vol—; } return ;
}
void nextSong(int mode, int& curnum, int max) //다음노래를 선택하기
{ if(mode 0) //순차일때 노래번호가 최대치가 아니면 노래번호에 1을 추가, 최대치면 1번노래로 돌아감 { if(curnum < max) { curnum++; } else { curnum=1; } } else if(mode 1) //랜덤일때 다음곡은 랜덤함수를 거치고 나오는 결과값으로 재생 { curnum = (curnum*curnum*2+1)%max+1; //랜덤은 나중에 구현 } return ;
}
void prevSong(int mode, int& curnum, int max)
{ if(mode 0) //순차일때 노래번호가 1번이 이나면 노래번호에 1을 차감, 최소치면 젤 마지막곡으로 돌아감 { if(curnum > 1) { curnum--; } else { curnum=max; } } else if(mode 1) //랜덤일때 이전곡은 랜덤함수를 거치고 나오는 결과값으로 재생 { curnum = (curnum*curnum*2+1)%max+1; //랜덤은 나중에 구현 } return ;
}
int ffSong(int& cursong, int cursongmax) //기본으로 노래시간에 10초를 추가하고 만약 최대치보다 노래시간이 커지면 다음곡으로 넘어감
{ cursong += 10;
  if(cursong > cursongmax) { return 1; }
  return 0;
}
void rewSong(int& cursong) //기본으로 노래시간에 10초를 차감하고 만약 0보다 노래시간이 작아지면 0으로
{ cursong -= 10;
  if(cursong < 0) { cursong = 0; } return ;
}
void changeSong(int num, string name, int time, int& curnum, string& curname, int& curtime, int& maxtime)
{ curnum = num; curname = name; maxtime = time; curtime = 0;
  return ;
}
int selectOnList()
{ int sel; cout << "노래 선택 : "; cin >> sel;
  return sel;
}

main함수가 있는 cpp엔
#include <iostream> 
#include <string>
#include "mp3function.cpp"
#include "mp3header.h"
using namespace std;
 
 
int main()
{ int song1Num = 1; //1번곡 번호 int song1Time = 230; //1번곡 시간 int song2Num = 2; //2번곡 번호 int song2Time = 210; //2번곡 시간 int song3Num = 3; //3번곡 번호 int song3Time = 250; //3번곡 시간 int curMaxList = 3; //현재 목록의 노래 갯수 int curSongNum = song1Num; // 현재 재생중인 노래 순번 int curSongMax = song1Time; //현재 노래가 끝나는 시간 int curSongTime = 0; //현재 노래를 재생한 시간 int curPlayMode = 0; //재생모드 – 0:순차 1:랜덤 2:한곡 int curVol = 10; //현재볼륨은 10 , 볼륨범위 0~20 int onPlay = 0; //노래가 재생중인지 아닌지 저장 int onList = 0; //목록을 보고있는지 아닌지 저장 int btn; //기능을 정해주는 입력번호 int selonlist; //노래를 선택
  string song1Name("발레니노 – 리쌍"); //1번 노래 제목 string song2Name("Fly – 에픽하이"); //2번 노래 제목 string song3Name("광대 – 리쌍"); //3번 모래 제목 string curSongName(song1Name); //현재 재생 중인 노래 제목
 
 
 
  do ///////////////////////////// "기본 mp3 재생상황을 화면에 나타냄" { cout << "———————————————————" << endl; cout << "곡명 : " << curSongNum << ". " << curSongName << " " << (onPlay ? "♬재생중" : "■일시정지") << endl; cout << " " << curSongTime/60 << " : " << curSongTime%60 << endl;
  if (curPlayMode 0) //재생모드가 0이면 순차재생 { cout <<" 순차재생 "; } else if (curPlayMode 1) // 재생모드가 1이면 랜덤재생 { cout <<" 랜덤재생 "; } else //재생모드가 그 밖의 수이면 한곡재생 { cout <<" 한곡재생 "; } cout << " vol : " << curVol << endl; //현재볼륨 cout << "———————————————————" << endl << endl;
  if (onList) // 만약 목록을 보고있다면 { cout << "현재 노래 목록" << endl; cout << song1Num << ". " << song1Name << " " << song1Time/60 << ":" << song1Time%60 << endl; cout << song2Num << ". " << song2Name << " " << song2Time/60 << ":" << song2Time%60 << endl; cout << song3Num << ". " << song3Name << " " << song3Time/60 << ":" << song3Time%60 << endl << endl; } cout << "1. ▶ 길게 누르기" << endl; cout << "2. ▶ 짧게 누르기" << endl; cout << "3. Volume ▼ " << endl; cout << "4. Volume ▲ " << endl; cout << "5. ▶▶ 길게 누르기" << endl; cout << "6. ▶▶ 짧게 누르기" << endl; cout << "7. ◀◀ 길게 누르기" << endl; cout << "8. ◀◀ 짧게 누르기" << endl; cout << "9. ▤ 리스트" << endl; cout << "버튼 선택 : " ;
  cin >> btn; // 기능을 선택입력
  switch (btn) { case 1:///////////////// "1. ▶ 길게 누르기" cout << "*********** mp3를 종료합니다 ***********" << endl; break; case 2:///////////////// "2. ▶ 짧게 누르기" if (onList) { } else { onPlay = !onPlay; } break; case 3://////////////// "3. Volume ▼ " downVolume(curVol); break;
  case 4: //////////////// "4. Volume ▲ " upVolume(curVol); break; case 5: /////////////// "5. ▶▶ 길게 누르기" if(ffSong(curSongTime, curSongMax)) // ffSong에서 return 1일때 if안의 기능들 사용 { nextSong(curPlayMode, curSongNum, curMaxList); // 다음곡으로 넘어가기
  if(curSongNum 1) { changeSong(song1Num, song1Name, song1Time,curSongNum, curSongName, curSongTime, curSongMax); } else if(curSongNum 2) { changeSong(song2Num, song2Name, song2Time,curSongNum, curSongName, curSongTime, curSongMax); } else if(curSongNum 3) { changeSong(song3Num, song3Name, song3Time,curSongNum, curSongName, curSongTime, curSongMax); } } break;   case 6: ////////////// "6. ▶▶ 짧게 누르기" nextSong(curPlayMode, curSongNum, curMaxList); // 다음곡으로 넘어가기   if(curSongNum 1) { changeSong(song1Num, song1Name, song1Time,curSongNum, curSongName, curSongTime, curSongMax); } else if(curSongNum 2) { changeSong(song2Num, song2Name, song2Time,curSongNum, curSongName, curSongTime, curSongMax); } else if(curSongNum 3) { changeSong(song3Num, song3Name, song3Time,curSongNum, curSongName, curSongTime, curSongMax); } break;
  case 7: ////////////// "7. ◀◀ 길게 누르기" rewSong(curSongTime); break;
  case 8: ////////////// "8. ◀◀ 짧게 누르기" prevSong(curPlayMode, curSongNum, curMaxList);
  if(curSongNum 1) { changeSong(song1Num, song1Name, song1Time,curSongNum, curSongName, curSongTime, curSongMax); } else if(curSongNum 2) { changeSong(song2Num, song2Name, song2Time,curSongNum, curSongName, curSongTime, curSongMax); } else if(curSongNum 3) { changeSong(song3Num, song3Name, song3Time,curSongNum, curSongName, curSongTime, curSongMax); } break;   case 9: ////////////// "9. ▤ 리스트"   if(onList) { selonlist = selectOnList();   if(selonlist 1) { changeSong(song1Num, song1Name, song1Time,curSongNum, curSongName, curSongTime, curSongMax); } else if(selonlist 2) { changeSong(song2Num, song2Name, song2Time,curSongNum, curSongName, curSongTime, curSongMax); } else if(selonlist 3) { changeSong(song3Num, song3Name, song3Time,curSongNum, curSongName, curSongTime, curSongMax); } }
  onList = !onList; break; } } while(btn != 1);
 
  return 0;
}

라고 했는데 어딜 고치면 되는지 갈켜주세요 ㅠㅠ
첨부도 해놓겟습니다 빠른 답변 부탁합니다 ㅠㅠ

댓글 달기

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