2017-11-19 10 views
-2

이것은 내 코드입니다. 파일을 만들지 만 입력 한 첫 번째 단어 만 인쇄합니다. 도와주세요.offtstream은 파일을 만들고 있지만 시작 문자열은 전체 문자열이 아닙니다.

std::string userinput; 
int a =rand() % 4+1; 
std::stringstream ss; 
ss << a; 
std::string line = ss.str(); 
std::string mfile="C:\\Users\\Venom\\Documents\\atom\\c++\\projects \\pyramid\\info files\\infernotxt\\help\\greeting\\" +line; 
//std::cout << mfile << '\n'; 
std::ifstream infile(mfile.c_str()); 
getline(infile, line); 
std::cout << infernoname<<line << '\n'; 
infile.close(); 


std::cout << username; 
std::ofstream output(guestfolder.c_str()); 
std::getline(std::cin, userinput); 
output<<userinput; 
output.close(); 
+0

경우'infernoname'이/초기화 선언은? – drescherjm

+0

제 조언은 Visual Studio와 같은 디버거와 함께 IDE를 사용하는 것입니다. 따라서 코드를 한 단계 씩 실행하여 각 단계의 변수를 살펴볼 수 있습니다. 그렇게하면 프로그램이 예상 한대로 작동하지 않는 부분을 빠르게 찾을 수 있습니다. – drescherjm

답변

2

코드의 문제점은 입력의 첫 단어 만 가져 오는 std :: cin을 사용하고 있다는 것입니다. 당신이 사용하고자하는 것은 getline(string)입니다.

문제 : Code. Input/Output


의 getline 사용은, userinput을 가정하는 것은 std::string

std::getline (std::cin,userinput);

+0

하지만 cin은 전체 문자열을 인쇄합니다. 나는 이것이 효과가 없을 것이라고 생각하지만, 나는 그것을 줄 것이다. –

+0

'std :: cout'은 전체 문자열을 출력하지만'std :: cin'은 입력을위한 것이며'>>'만 공백까지 사용합니다. 직접 실험 해보십시오. –

+0

그것은 작동하지 않았다, 나는 그것을하지 않을 것이라고 말했다. did''nt는 심지어 입력을 투옥했다. –