プログラムのコード スニペットの一部を貼り付けました。コードの出力に不要な文字が含まれています。調べて、その背後にある明白な論理的な理由を教えてください。
class print {
FILE *pFile;
vector <char> st;
public:
char *formatForHtml(string str, string htmlTag) {
string strBegin;
strBegin = "<";
strBegin.append(htmlTag);
strBegin.append(">");
strBegin.append(str);
string strEnd = "</";
strEnd.append(htmlTag);
strEnd.append(">");
strBegin.append(strEnd);
st.resize(strBegin.size());
for (int i =0;i <strBegin.size();i++) {
st[i] = strBegin[i];
}
return &st[0];
}
void generatePath() {
char fileName[_MAX_FNAME];
_makepath(fileName,"C:","\\Users\\vinitg\\Documents\\Visual Studio 2010\\Projects\\continous_beam_cpp.cpp\\", "myf9", "html");
pFile = fopen(fileName,"a+");
}
void writeInFile() {
string str = "DESIGN OF A CONTINOUS BEAM!";
char *procString;
procString = formatForHtml(str, "p");
fprintf(pFile, procString);
fclose(pFile);
ShellExecute(NULL, "open", "file:///C:/Users/vinitg/Documents/Visual%20Studio%202010/Projects/continous_beam_cpp.cpp/myF9.html",NULL, NULL, SW_SHOWMAXIMIZED);
}
void passString (char g[]) {
cout << &g[0];
}
};
int main() {
print generateReport;
generateReport.generatePath();
generateReport.writeInFile();
cout << "Press any one key to continue..";
getch();
}`
HTMLファイルが作成され、結果がhtml形式で表示されることはすでに推測しているはずです。以下に貼り付けたのは出力です(不要な文字を含む)
DESIGN OF A CONTINUOUS BEAM!
ýýýý««««««««îþ