需要帮助将数据文件转换为特定输出

时间:2014-10-16 18:18:01

标签: c++

我有一个名为:dataFile(无扩展名)的文件,其中包含以下行:

CALCULATOR
Lamp . Post
aBc - deF

我的程序需要输出这样的数据文件:

calculator
lamppost
abcdef

因此它应该基本上尊重'\ n',将所有字符更改为小写,并删除所有非字母字符 ...

到目前为止,这是我的代码,

#include <iostream>
#include <fstream>
#include <cctype>

using namespace std;

int main()
{
char file;

ifstream cin;
cin.open("dataFile");
cin.get(file);

while (!cin.eof())
    {
    file = tolower(file);                 // Convert all letters to capital letters
         if (('A'<= file && 'Z' >= file)) // Restrict to only letters
            {
             cout << file;                // Output file
            }
    cin.clear();
    cin.get(file);
    }

return 0;
}

我面临的问题是程序的输出如下所示:

  

calculatorlamppostabcdef

我应该如何修改我的代码,使其分别输出每一行?

1 个答案:

答案 0 :(得分:0)

如果您可以使用其他内容,则应执行以下操作:

bash $ (tr '[A-Z]' '[a-z]' | tr -d -c '[:alpha:]\n') < dataFile

否则,这可能是你想要的:

#include <cctype>
#include <fstream>
#include <iostream>

using namespace std;

int main()
{
    char c;
    ifstream file("dataFile");

    while (!file.eof()) {
            c = file.get();

            if (isalpha(c) || c == '\n')
                    cout << tolower(c);
    }

    return 0;
}