我无法让我的程序读取输入文件中的空格,我是新手和一般的对象所以任何帮助都会受到赞赏。
我的输入文件是:你好我的名字是皮埃尔。我喜欢编码。
我的输出文件是:HellomynameisPierre.Iliketocode。
我的另一个问题是如何检查我的字符串是否有多个空格,如果有,则只用一个空格替换它。
#include <fstream>
#include <iostream>
#include <cstdlib>
using namespace std;
void clean_file(ifstream& fin, ofstream& fout);
int main()
{
ifstream fin;
ofstream fout;
clean_file(fin, fout);
}
void clean_file(ifstream& fin, ofstream& fout)
{
fin.open("string.txt");
if (fin.fail())
{
cout << "File could not open.";
exit(1);
}
fout.open("cleanString.txt");
if (fout.fail())
{
cout << "File could not open.";
exit(1);
}
char line;
while (fin >> line)
{
fout << line;
}
fin.close();
fout.close();
}
编辑:我将(fin&gt;&gt;行)更改为(fin.get(line)),现在可以正常工作了。谢谢。
#include <fstream>
#include <iostream>
#include <cstdlib>
using namespace std;
void clean_file(ifstream& fin, ofstream& fout);
int main()
{
ifstream fin;
ofstream fout;
clean_file(fin, fout);
}
void clean_file(ifstream& fin, ofstream& fout)
{
fin.open("string.txt");
if (fin.fail())
{
cout << "File could not open.";
exit(1);
}
fout.open("cleanString.txt");
if (fout.fail())
{
cout << "File could not open.";
exit(1);
}
char line;
while (fin.get(line))
{
fout << line;
}
fin.close();
fout.close();
}
答案 0 :(得分:2)
这个问题与这个问题非常相似:
Reading from ifstream won't read whitespace
请尝试使用(fin >> line)
功能:
get()
(fin.get(line))
试一试。