我需要编写一个程序,从文件中读取数字,删除逗号,并将数字写入新文件。 我已经成功完成了工作,但我不知道如何在新文件中添加数字之间的空格。 这是我的程序
int main()
{
ifstream numbersDs; // input: numbers data stream
ofstream nubersNoComma;
projDit(); // Project details
// Check if the files exist.
numbersDs.open(inFile);
nubersNoComma.open(outFile);
char c;
numbersDs >> c;
while (!numbersDs.eof())
{
while ((c != ',') && (!numbersDs.eof())) \\ another .eof to avoid inf loop
{
cout << c ;
nubersNoComma << c;
numbersDs >> c;
}
cout << c ;
numbersDs >> c;
}
nubersNoComma.close();
numbersDs.close();
}
这是输入:
148,540 5345 34,456 2 1,002
这是输出:
14854053453445621002
答案 0 :(得分:2)
ifstream
正在吃空白。添加以下内容:
numbersDs >> std::noskipws;
答案 1 :(得分:0)
这段代码可以帮助你,正如“Dan Hook”所提到的,在使用stringstreams,fstreams时你必须进一步考虑跳过空格。
while (!numbersDs.eof())
{
while ((c != ',') && (!numbersDs.eof()))
{
cout << c ;
nubersNoComma << c;
numbersDs>>std::noskipws >> c;
}
nubersNoComma << " ";
cout << c ;
numbersDs >> c;
}