2016-12-05 1 views
0

저는 C++을 처음 접했고 간단한 프로그램을 작성하여 사람의 이름을 물어보고 다시 인쇄했습니다. int 형 변수를 가진 똑같은 프로그램을 만들었을 때 잘 동작했습니다. 그러나 문자열 유형으로 바꿀 때 "Debug Assertion Failed!"라는 오류 메시지가 나타납니다. 내 이름을 입력하면 메시지.디버그 어설 션 실패 Visual C++

#include "stdafx.h" 
#include <iostream> 
#include <string> 

using namespace std; 
int main(string name) 
{ 
    cout << "What is your name?" << endl; 
    cin >> name; 
    cout << endl << "Your name is " << name << "." << endl; 
    return 0; 
} 

너희들이 나를이 실패 이유에 대한 올바른 방향으로 가리킬 수 있습니다 여기에 프로그램입니까? 다른 곳에서는 관련 스레드를 찾을 수 없습니다. 고맙습니다.

int main(int argc, char **argv) 

하지 int main(string) : 그것은 C++을의 경우에도

+3

name를 선언'++ 유효 C 없습니다. 이것을'int main (int argc, char * argv [])'로 변경하고 지역 변수'std :: string name;'을 생성하십시오. –

+0

코드의 실제 문제 외에도 "디버그 어설 션 실패"메시지에는 항상 추가 정보가 있습니다. 그것은 당신에게 아무 의미가 없을 수도 있습니다 (왜냐하면 당신은 C++을 처음 사용하기 때문에), 유용하지만 중요합니다. 귀하의 질문에 그것을 포함하십시오. Ctrl + C를 눌러 Windows 메시지 상자를 클립 보드로 복사 할 수 있습니다. –

+0

'main'은 하나의 매개 변수로'std :: string'을 사용하기 위해 오버로드되지 않습니다. 대신에 argv [1]'또는 2 ..에 문자열을 전달한 다음 로컬 문자열 변수에 할당하거나 직접 사용하십시오. – Raindrop7

답변

0

main의 정의의 형태로 아직도있다. (name이 프로그램의 출력이기 때문에)

수정 : 지역 변수`INT 주 (캐릭터 이름)

int main(int argc, char **argv) 
{ 
    string name;