2012-12-16 5 views
0

아래 코드는 두 개의 문자열 연결을 연결하기 위해이 프로그램을 만들었지 만 연결 한 후 첫 번째 단어를 표시하지 않습니다 ..... 나는 cin에 누락 된 것이 있다고 생각합니다. .ignore() 친절하게 확인하고 도와주세요 ??? 이 프로그램에연결 후 첫 번째 문자가 표시되지 않습니다

#include "stdafx.h" 
#include<iostream> 
#include <stdio.h> 
#include <string> 
#define MAX 100 
using namespace std; 
void main() 
{ 

char str[MAX],abc[MAX]; 
cout<<"\nEnter the string 1"; 
cin.ignore();     
cin.get(str,MAX);              
cout<<"\nEnter The String 2"; 
cin.ignore(); 
cin.get(abc,MAX); 
cout<<"\nS1="<<str; 
cout<<"\ns2="<<abc; 
strcat(str,abc); 
cout<<"\nStrings after catenation are"<<str; 
system("pause"); 

} 

오류는 그 연결 첫 글자는이 라인 cin.ignore();에 표시되지 후. 또 다른 오류는 다른 문자로 결과를 저장하고자한다는 것입니다. 하지만 컴파일러에서 오류가 발생합니다.

답변

4

문제는 ".ignore()"이며 사용자가 입력 한 다음 문자를 무시합니다. 왜 이걸 쓰고 있니?

+0

사용자가 Enter를 눌렀을 때 개행을 시도 했습니까? 왜 그런지 모르겠지만, 그렇다면 그는 질서 정연하다. 물론, C++을 작성한 지 15 년이 되었기 때문에 벗어날 수 있었지만 그게 다라고 생각합니다. –

+0

하지만 cin.ignore를 사용하지 않을 때는 에러가 발생합니다. – Niazi

+0

@Niazi - Eric이 말했듯이,'ignore'를 사용하여 전에가 아닌'get' 이후에 줄 바꿈을 건너 뛰십시오. –

관련 문제