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++을의 경우에도
로
name
를 선언'++ 유효 C 없습니다. 이것을'int main (int argc, char * argv [])'로 변경하고 지역 변수'std :: string name;'을 생성하십시오. –코드의 실제 문제 외에도 "디버그 어설 션 실패"메시지에는 항상 추가 정보가 있습니다. 그것은 당신에게 아무 의미가 없을 수도 있습니다 (왜냐하면 당신은 C++을 처음 사용하기 때문에), 유용하지만 중요합니다. 귀하의 질문에 그것을 포함하십시오. Ctrl + C를 눌러 Windows 메시지 상자를 클립 보드로 복사 할 수 있습니다. –
'main'은 하나의 매개 변수로'std :: string'을 사용하기 위해 오버로드되지 않습니다. 대신에 argv [1]'또는 2 ..에 문자열을 전달한 다음 로컬 문자열 변수에 할당하거나 직접 사용하십시오. – Raindrop7