【发布时间】:2012-08-20 22:26:57
【问题描述】:
我编写了一个程序来计算文本文件中字母数字字符的数量。但是,它返回的数字总是大于在线字符计数器返回的数字。
例如,程序将计算此文本中字母数字字符的个数:
如果这些人有奇怪的时尚和最期望的服从 他们至少准备好为他们的非同寻常的事情付出代价 偏心
是162。再次运行程序,它会说文本中有164个字符。再次运行它,它会说有 156 个字符。使用this在线字符计数器,似乎字符数应该低于144(在线字符计数器也包括空格)。
代码如下:
#include <iostream>
#include <fstream>
#include <cctype>
using namespace std;
int main() {
char line[100];
int charcount = 0;
ifstream file("pg1661sample.txt");
while (!file.eof()) {
file.getline(line, 99);
for (int i = 0; i < 100; i++) {
if (isalnum(line[i])) {
charcount++;
}
}
}
cout << endl << "Alphanumeric character count: " << charcount;
cin.get();
return 0;
}
我做错了什么?
【问题讨论】:
-
@jrok,也可能是他在最后读取时仅计算字符串末尾之后的 alnums(在任何情况下都有一个非一)。
标签: c++ text-files alphanumeric