필자는 입력 파일에서 문자 유형 및 빈도를 기록하는 데 사용하는 벡터 vec (256, 0)을 사용합니다. 따라서 3 A의 my vec [65]는 3의 값을 유지합니다. 출력 파일에 비어 있지 않은 문자가 합계로오고 아스키 문자와 발생 빈도가 뒤 따르는 문자를 출력하려고합니다.배열에서 출력 파일에 쓰는 방법은 무엇입니까?
int count = 0;
for (int i = 0; i < 256; i++)
if (vec[i] != 0) // if not 0 count it
count++;
// print the count as the first char in output file
outfile << count;
for (int i = 0; i < 256; i++)
if (vec[i] != 0)
outfile << (char) i << vec[i];
주어진 입력의 "BB C는"내가 원하는 것은 :
4a1b2c1
하지만 내가 얻을 것은 :
5
1 2a1b2c1
무엇 이 문제를 해결할 수 있습니까?
* 불확정 * 값을 사용하는 대신 for 루프를 올바르게 초기화하는 것으로 시작하겠습니다. 이것은 : for (int i; i <256; i ++)는 * 틀린 *입니다. – WhozCraig
고마워, 그건 오타 였어. – Napalidon
그리고'std :: accumulate()'와'std :: isalnum() '도 똑같이 도움이 될 것입니다. 내가 입력이 아스키 테이블의 모든 256 개 문자에 대해 작업 할 때부터이 isalnum()를하지 않을 – WhozCraig