从数字中删除逗号的程序

时间:2014-04-02 15:04:31

标签: c++

我需要编写一个程序,从文件中读取数字,删除逗号,并将数字写入新文件。 我已经成功完成了工作,但我不知道如何在新文件中添加数字之间的空格。 这是我的程序

 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

2 个答案:

答案 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;
    }