如何从我正在阅读的文件中删除所有标点符号?

时间:2015-11-13 15:33:06

标签: c++

这是我在名为main.cpp的文件中的主要方法:

#include <iostream>
#include "ReadWords.h"
#include "Writer.h"
#include <cctype>
#include <string>

using namespace std;

int main() {

    int count;
    int length;
    string word;

    cout << "Please enter a filename: " << flush;
    char filename[30];
    cin >> filename;

这是我试图删除文件中所有标点符号的地方。目前,我能够读取文件并打印所有值。我正在努力访问该文件并删除标点符号。我知道我要使用ispunct。我尝试了很多不同的实现,但无法让它工作。如何删除文件中的所有标点?

    ReadWords reader(filename);
    while (reader.isNextWord()){
        count = count + 1;
        reader.getNextWord();


    }

    cout << "There are: " << count << " words in this text file" << endl;    
    return 0;
}

这是另一个名为ReadWords的文件,我有我所有的方法声明:我不认为这是相关的/需要的

#include "ReadWords.h"
#include <cstring>
#include <iostream>
using namespace std;

void ReadWords::close(){

}
ReadWords::ReadWords(const char *filename) {
    //storing user input to use as the filename

        //string filename;

        wordfile.open(filename);

        if (!wordfile) {
            cout << "could not open " << filename << endl;
            exit(1);
        }

}

string ReadWords::getNextWord() {

    string n;
    if(isNextWord()){
        wordfile >> n;
        return n;

    }

}

bool ReadWords::isNextWord() {

        if (wordfile.eof()) {
            return false;
        }
        return true;
}

1 个答案:

答案 0 :(得分:2)

一次从输入文件中读取一个字符。

对于您阅读的每个角色:

  • 如果字符不是标点符号,请将其写入输出文件。
  • 如果角色是标点符号,请不要将其写入输出文件。