你应该把while循环改成
while (infile >> c) program += c
因为你原来的代码读入最后;字符后, infile.eof()返回其实是false,然后又尝试infile >> c,这时遇到文件结尾,c的值没变,所以又添加了一个;