이름에 공백이있는 C++ 파일을 여는 데 문제가 있습니다. 예를 들어 파일 read me.txt
을 여는 경우이름에 공백이있는 파일 열기
string choice, word, fname;
ifstream input;
int l, count = 0;
if(choice == "wc" || choice == "WC" || choice == "Wc")
{
getline(cin, fname);
input.open(fname.c_str());
cout << fname << endl;
if(input.fail())
{
cerr << " Error: failed to open the file: " << fname << endl;
input.clear();
}
else
{
w = 0;
while (input >> word)
w++;
input.close();
count = w;
cout << fname << " has a Word Count of: " << count << " words \n" << endl;
}
}
내가 스트림 기능 c_str()
이 후 하나 이상의 문자열을 읽을 수 있다는 사실을 알고 :
이
내가 지금까지 파일을 읽고 단어가 콘솔에 계산 출력 하나의 명령을 포함하는 한 코드입니다 공간. 하위 문자열을 사용하려고 생각했지만 계속 진행하는 방법에 대해 완전히 확신하지 못했습니다. 너희들이 나를 도와 줄 수 있니? '\'문자가 이스케이프 코드로 해석됩니다 리터럴 문자열에서에 당신을 허용 :
'c_str()'은 공백을 신경 쓰지 않습니다 ... 여기서 뭐가 문제입니까? – Cornstalks
코드에 컴파일 (예 : 마지막 줄에서'cout' 대신'out', 어디에도'w'가 정의되어 있지 않음)을 방지하는 몇 가지 명백한 (?) 오류가 있습니다. 작업 코드를 입력하십시오. 내가 아는 최선의 방법으로 코드를 수정하면, 파일 이름에 공백이있는 것처럼 처리됩니다. –
디버깅은 어때요 ...''cout << ""[ "<< fname <<"]을 열려고합니다. \ n ";'알다시피, 당신의 문자열은 당신이 생각하는 것입니다. – paddy