C++ 函数似乎不计算文本文件中的空格数
C++ Function does not seem to count the number of spaces in a text file
我正在尝试计算文本文件中不同类型的字符 "nums.txt"
我使用带有 ifstream 对象的 while 循环来单独检查每个字符。
目前,我的所有字符类型(标点符号、数字、大写字母等)都正确显示了它们对应的编号,但空白 space 字符 ' ' 除外。
这是我目前在循环中的内容:
while (inFile >> inChar){
if (isupper(inChar))
upperCount++;
else if (islower(inChar))
lowerCount++;
// the rest of the char types
else if (isspace(inChar))
spaceCount++;
}
每当我 运行 程序时,显示屏显示 space 的数量为 0,我不知道为什么。
谢谢
如果您不希望 istream
跳过空格(空格、制表符和换行符都被视为空格),那么您需要明确告诉它不要跳过空格。
您可以通过在执行格式化输入之前将流操纵器 std::noskipws
传递给流来执行此操作:
std::cin >> std::noskipws;
请务必在完成后将其重置为正常行为,否则 >>
运算符将无法按预期工作。
std::cin >> std::skipws;
我正在尝试计算文本文件中不同类型的字符 "nums.txt" 我使用带有 ifstream 对象的 while 循环来单独检查每个字符。 目前,我的所有字符类型(标点符号、数字、大写字母等)都正确显示了它们对应的编号,但空白 space 字符 ' ' 除外。
这是我目前在循环中的内容:
while (inFile >> inChar){
if (isupper(inChar))
upperCount++;
else if (islower(inChar))
lowerCount++;
// the rest of the char types
else if (isspace(inChar))
spaceCount++;
}
每当我 运行 程序时,显示屏显示 space 的数量为 0,我不知道为什么。 谢谢
如果您不希望 istream
跳过空格(空格、制表符和换行符都被视为空格),那么您需要明确告诉它不要跳过空格。
您可以通过在执行格式化输入之前将流操纵器 std::noskipws
传递给流来执行此操作:
std::cin >> std::noskipws;
请务必在完成后将其重置为正常行为,否则 >>
运算符将无法按预期工作。
std::cin >> std::skipws;