이 코드의 목적은 프로그램에 전달 된 파일을 가져 와서 파일의 각 문자의 문자 빈도를 생성하는 것입니다. 위의 코드에서 구두점을 제거하고 소문자로 변환합니다.코드가 실행되는 동안 계속 "버스 오류"가 표시됩니까?
#include<iostream>
#include<string>
#include<fstream>
using namespace std;
int main()
{
string fileContent = "qr rqh zrxog kdyh eholhyhg lq wkh odvw bhduv ri wkh qlqhwhhqwk fhqwxub wkdw wklv";
int count[26] = { 0 }; // an array the size of the alphabet.
for(int f = 0; f < fileContent.length(); f++) // run til the file end.
{
if(fileContent[f] == 32) // to take care of the spaces.
{
f++; // also tried "continue;" and yeild different and also incorrect results.
}
if(fileContent[f] >= 48 && fileContent[f] <= 57) //take care of numbers.
{
f++; // tried "continue;"
}
count[fileContent[f]]++;
}
for(int p = 0; p < 26; p++)
{
cout << char(p + 97) << ": " << count[p] << endl;
}
return 0;
}
이 코드를 실행하면 좀 정확한 주파수를 얻을 수 있으며, 일부 끔찍하게 잘못된 것들 (다른 모든 결과가 잘못된 것 같아, 아직 몇 글자 후에는 천문학적으로 큰 숫자로 떨어져 산책로). 더 나은 방법이 있나요? 이 코드의 문제점은 무엇입니까? 요청에 따라 (분명히 충분히 명확하지 않았으므로) 더 많은 코드 (무작위로 100 개의 문자열 포함)를 추가했습니다.
자세한 내용은이 프로그램이 Ceasar 시프트 디코더 용입니다. 에. 나는 기본 C++에 있고, 당신으로부터 더 많은 경험 많은 개발자 조언을 크게 감사 할 것입니다. 고맙습니다! 프로그램에서
*이 코드에 어떤 문제가 있습니까? * - 조언 - 학습해야 할 사항 중 하나이며 프로그램 작성 방법을 배우는 데 필요한 부분 중 하나는 자신의 프로그램을 디버깅하는 것입니다. 당신, 나 또는 user0042가 쓰는 프로그램이 실수를 포함 할 수있는 이상 현상은 아닙니다. 가장 먼저해야 할 일은 자신의 코드를 디버깅하는 것입니다. 당신이 원하지 않는 한 가지는 코드가 작동하지 않을 때 "최종 사용자"처럼 행동하고, "고객 지원"을 위해 StackOverflow를 호출하는 것입니다. 그것은 아주 오래되고, downvotes를 얻을 수 있습니다. – PaulMcKenzie
프로그램을 실행하는 중에 오류가 발생합니다. 그렇습니까? 컴파일은 소스 코드를 실행할 수있는 실행 파일로 변환하는 프로세스입니다. –
나는 초급자이며, 나는 디버깅이 무엇인지 알고 있으며 그렇다. 나는 내 코드를 디버깅하려고 시도했다. 오류가 있고 나의 "전문 기술"이 그것을 알아 차리기에 예리하지 않으면 나는 몇 시간 동안 자기 연민에 빠지기로되어 있나? 이 커뮤니티는 여러 가지 이유 때문에 초보자에게 연민이 완전히 없어서 새로운 사용자에게 매우 유독합니다. 나는 그가 요구 한 지침을 고수했다. 게시 한 코드는 간결하고 줄였습니다. 나는 약 1 시간 반 동안이 문제를 해결하기 위해 다른 일을 시도했다. 그것은 내가 작은 오류를 놓친 이상이 아니다[email protected] – hammonak