如何使用ispunct()为输入文件计算和输出标点符号

时间:2018-03-21 01:13:10

标签: c++ file-io

我有一个带有巨大段落的文本文件,我想能够计算并输出我文件中的所有标点符号..这是我的代码到目前为止,它只是打印" 0" 谢谢。

int main(){
inFile.open("Horoscope.txt");
if (!inFile)
{
    cerr << "Error: Input file opening failed\n";
    return EXIT_FAILURE;
}

int punct = 0;
char input = ' ';
while (inFile >> input)
{
    if (ispunct(input))
    {
        punct++;
    }
    inFile.close();
    cout << "There are " << punct << " punctuation marks in the text file" 
<< endl; 
}
}

1 个答案:

答案 0 :(得分:0)

根据您发布的内容,您似乎正在关闭循环中的文件,从而停止搜索。

完成后关闭文件。

#include <iostream>
#include <fstream>

int main() {
    std::ifstream inFile;
    inFile.open("Horoscope.txt");
    if (!inFile)
    {
        std::cerr << "Error: Input file opening failed\n";
        return EXIT_FAILURE;
    }

    int punct = 0;
    char input = ' ';
    while (inFile >> input)
    {
        if (ispunct(input))
        {
            punct++;
        }   
    }
    inFile.close();
    std::cout << "There are " << punct << " punctuation marks in the text file" << std::endl;
}