我有一个名为: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
我应该如何修改我的代码,使其分别输出每一行?
答案 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;
}