如何在记事本txt文件中的每行开头写一个单词? C ++

时间:2009-07-05 08:30:01

标签: c++ file-io

我想在文本文件DATA.txt中的每一行的开头写一个字符串。

输入:

Hello 
my 
name 
is 
steven

输出:

1.hello
1.my
1.name
1.is
1.steven

我想在每一行找到字符串,然后将特定文本1.放在它前面。

8 个答案:

答案 0 :(得分:3)

我不知道这与记事本有什么关系。如果您想在文本文件中添加一个字符串前面的每一行,只需

  1. 按行阅读文件
  2. 将前缀输出到新文件
  3. 将行内容输出到新文件
  4. 读取下一行并转到2,直到到达文件末尾。
  5. 如果这不是你想要的,你应该更具体地问。

答案 1 :(得分:2)

我希望以下代码对您有所帮助:

#include <iostream>
#include <fstream>
using namespace std;

int main() {
    string line, new_content;
    string prefix   = "1.";
    char filename[] = "DATA.txt";

    // Read lines and prepare contents by prefixing lines with a prefix
    ifstream infile(filename);
    while ( infile >> line ) {
        new_content += prefix + line + "\n";
    }
    infile.close();

    // Write contents
    ofstream outfile(filename);
    outfile << new_content;
    outfile.close();

    return 0;
}

答案 2 :(得分:1)

这是在黑暗中刺伤,但你的意思是它应该读取现有的文本文件以获取文本行吗?

#include <string>
#include <fstream>
#include <iostream>

int main()
{
    std::ifstream inputFile("c:\\input.txt");
    std::ofstream outputFile("c:\\output.txt");

    std::string line;
    while (std::getline(inputFile, line))
        outputFile << "1." << line << std::endl;

    return 0;
}

这意味着,打开输入文件和输出文件,然后对于从输入文件中读取的每一行,将其写入输出文件,前面有1.

答案 3 :(得分:1)

这是不应该使用C ++的完美示例。如果你在Unix上,你会做

cat myFile.txt | sed 's/^/1./

在Windows上,我相信你可以用bat文件或新shell(PowerSomething?)做些什么。请不要使用C ++。

答案 4 :(得分:0)

我真的不明白这个问题。

但是,您应该谨慎选择使用哪种工具。记事本和C ++都不适合您想要的工作。你应该使用sed,perl或一个好的文本编辑器(vim)。

答案 5 :(得分:0)

我认为通过cout语句对标准I / O进行简要介绍是有条不紊的。您可以通过以下示例中调用的“cout”函数打印到控制台:

cout << "I used a cout statement, lolz";

同样,您可以通过换行符“\ n”或在“cout”语句末尾使用“&lt;&lt; endl”将新行打印到控制台

cout << "This is the newline character \n";
cout << "This is endl" << endl;

我希望这会有所帮助。请记住,为了使用cout,您需要包含iostream库。

答案 6 :(得分:0)

一种可能的方法。

#include <fstream>
using namespace std;

int main()
{
    //use for a series of numbers
    int i=0;
    // or use if you want 1 number
    int j=1;

    ofstream out ("yourfile.txt", ios::app);

    //use j if you want to display 1 with dot (.)
    out << i++ << "." << "Hello" << endl;
    out << i++ << "." << "my" << endl;
    out << i++ << "." << "name" << endl;
    out << i++ << "." << "is" << endl;
    out << i++ << "." << "Steven" << endl;
}

编辑:与字符串相同的代码!

#include <fstream>
#include <string>
using namespace std;

    int main()
    {
        string strText[] = {
            "Hello",
            "my",
            "name",
            "is",
            "steven"
            };

        //use for a series of numbers
        int i=0;
        // or use if you want 1 number
        int j=1;

        ofstream out ("yourfile.txt", ios::app);

        //use j if you want to display 1 with dot (.)
        out << i++ << "." << strText[0] << endl;
        out << i++ << "." << strText[1] << endl;
        out << i++ << "." << strText[2] << endl;
        out << i++ << "." << strText[3] << endl;
        out << i++ << "." << strText[4] << endl;
    }

答案 7 :(得分:0)

只需使用前缀变量:

#include <fstream>
using namespace std;

ofstream file;
string prefix = "1. ";

out_file.open("test.txt");

out_file << prefix << "some text" << endl;
out_file << prefix << "some other text" << endl;

out_file.close();

或者您可以编写一些便利功能来执行此操作:

void writeLine(ofstream file, string text)
{
    file << "1. " << text << endl;
}

当然,还有更多的可能性。