2014-11-02 80 views
0

因此,我有一個程序來模擬如何在編譯器中工作。 輸入程序取文件:說input.txt(文本文件)。替換文本文件中的特定單詞:C++,爲預定義的值

認爲它有這樣的內容:

#include<iostream> 
#define PI 3.14 

我想要做的是,找到這個詞的PI在此之後發生,並在文件中3.14替換它。我使用FilePointer >> CharacterBuffer從文件逐字讀取。完成所有這些後,如何在文件中替換它?
謝謝。

+0

你就不能使用C預做到這一點?!? – 2014-11-02 16:21:35

+0

我認爲你必須輸出到不同的文件。 – Galik 2014-11-02 16:28:24

+0

你能解釋一下'string :: npos'在這裏@ravi是怎麼做的。謝謝你們的快速響應。
2014-11-02 16:29:25

回答

1

你可以用下面的代碼在一個文件替換字符串嘗試: -

string line; 
    size_t len = stringToReplace.length();   //replace is a string to be replaced. 
    while (getline(in, line)) 
    { 
     while (true) 
     { 
      size_t pos = line.find(stringToReplace); 
      if (pos != string::npos) 
       line.replace(pos, len, stringToReplace); 
      else 
       break; 
     } 

     out << line << '\n'; 
    } 
+0

如果'in'和'out'都是相同的文件,那麼這將不起作用,因爲它們在這個問題中。 – 2014-11-02 16:45:33