2009-07-05 10 views
-3

Je veux écrire une chaîne au début de chaque ligne dans un fichier texte DATA.txt.Comment écrire un mot au début de chaque ligne dans un fichier txt de bloc-notes? C++

Entrée:

Hello 
my 
name 
is 
steven 

Sortie:

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

Je veux trouver la chaîne sur chaque ligne, puis mettre le texte 1. certain devant elle.

+0

Publiez du code que vous avez écrit pour tenter de le résoudre, ainsi qu'une question spécifique concernant le code. –

+0

Je n'ai pas eu de code, j'ai essayé de le faire, mais j'ai échoué à tous mes projets liés à cela, donc j'espérais qu'une référence serait intacte – H4cKL0rD

Répondre

3

Je n'ai aucune idée de ce que cela a à voir avec le bloc-notes. Si vous voulez préfixer chaque ligne dans un fichier texte avec une chaîne, il suffit

  1. lire la ligne sage fichier
  2. sortie le préfixe à un nouveau fichier de sortie
  3. le contenu en ligne dans le nouveau fichier
  4. lire la ligne suivante et aller à 2 jusqu'à ce que vous avez atteint la fin du fichier.

Si ce n'est pas ce que vous voulez, vous devriez demander plus précisément.

+4

Je suppose que la référence notepad vient du ".txt est le format de fichier d'application natif de le puissant bloc-notes "idée. Beaucoup de gens le voient de cette façon. – balpha

0

Je ne comprends pas vraiment la question.

Toutefois, vous devez choisir l'outil à utiliser avec précaution. Ni le bloc-notes ni le C++ ne semblent être l'outil idéal pour le travail que vous voulez. Vous devriez utiliser sed, perl ou un bon éditeur de texte (vim).

0

Je pense qu'un bref rappel sur les E/S standard via les instructions cout est dans l'ordre. Vous pouvez imprimer sur la console via la fonction « Cout » qui est invoqué dans l'exemple suivant:

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

De même, vous pouvez imprimer une nouvelle ligne à la console via le caractère de nouvelle ligne « \ n » ou en utilisant "< < endl "à la fin d'une déclaration" cout "

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

J'espère que cela aide. N'oubliez pas que pour utiliser cout, vous devez inclure la bibliothèque iostream.

0

Un moyen possible de le faire.

#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; 
} 

EDIT: Même code avec chaîne!

#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; 
    } 
+0

Je le veux pour trouver la chaîne et placez-le avant le texte sur chaque ligne – H4cKL0rD

+0

Vous n'avez pas précisé cela! :( – Secko

0

Il suffit d'utiliser une variable préfixe:

#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(); 

Ou vous pourriez écrire une petite fonction pratique pour le faire:

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

Certes, il y a plus de possibilités.

2

J'espère que le code suivant sera utile pour vous:

#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; 
} 
1

C'est un coup de poignard dans le noir, mais voulez-vous dire qu'il devrait lire un fichier texte existant pour obtenir les lignes de texte?

#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; 
} 

Ce qui veut dire, ouvrir le fichier d'entrée et le fichier de sortie, puis pour chaque ligne lue à partir du fichier d'entrée, l'écrire dans le fichier de sortie avec 1. en face d'elle.

1

Ceci est un exemple parfait de quelque chose que C++ ne devrait pas être utilisé. Si vous étiez sur Unix, vous feriez

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

Sous Windows, je suis sûr que vous pouvez faire quelque chose avec les fichiers de chauve-souris ou le nouveau shell (PowerSomething?). Merci de ne pas utiliser C++ pour cela.

Questions connexes