Détecter de nouvelles de la ligne de c++ fstream
Comment puis-je lire .txt copie le contenu à un autre .txt en utilisant fstream pour un contenu similaire.
Le problème est, quand dans le fichier il y a une nouvelle ligne. Comment puis-je détecter que lors de l'utilisation ifstream?
utilisateur d'entrer "apple"
Par exemple:
note.txt =>
J'ai acheté une pomme hier.
La pomme a un goût délicieux.
note_new.txt =>
J'ai acheté un hier.
un goût délicieux.
la note résultante supposé être au-dessus, mais au lieu de cela:
note_new.txt =>
J'ai acheté un hier. un goût délicieux.
Comment puis-je vérifier si il y a une nouvelle ligne dans le fichier source, il permettra aussi de créer une nouvelle ligne dans un nouveau fichier.
Voici mon code actuel:
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main() {
ifstream inFile ("note.txt");
string word;
ofstream outFile("note_new.txt");
while(inFile >> word) {
outfile << word << " ";
}
}
pouvez-vous m'aider? en fait je vérifie également lorsque le mot extrait est le même que ce que spécifié par l'utilisateur, alors je ne vais pas écrire ce mot dans le nouveau fichier. De manière générale, il va supprimer les mots qui sont les mêmes que celle spécifiée par l'utilisateur.
std::getline()
Est-il une raison pour laquelle vous êtes de l'analyse du fichier de mot par mot? La façon la plus simple pour obtenir le fichier identique est de ne pas analyser à tous et il suffit de lire/écrire des données binaires ou de l'utiliser quelle que soit la plateforme spécifique de l'api est accessible qu'à copier le fichier.
en fait je vérifie également lorsque le mot extrait est le même que ce que spécifié par l'utilisateur, alors je ne vais pas écrire ce mot dans le nouveau fichier. De manière générale, il va supprimer les mots qui sont les mêmes que celle spécifiée par l'utilisateur.
Vous devez le spécifier dans votre question, comme il ne rentre pas dans les "exactement le même contenu de la partie".
OriginalL'auteur muhihsan | 2013-08-19
Vous devez vous connecter pour publier un commentaire.
, Ligne par ligne, la méthode
Si vous voulez continuer à le faire ligne par ligne, vous pouvez utiliser
std::getline()
:Il obtient une ligne à partir du flux et vous venez de le réécrire où vous le souhaitez.
Méthode plus facile
Si vous voulez juste de réécrire un fichier à l'intérieur de l'autre, l'utilisation
rdbuf
:EDIT : Elle permettra de supprimer les mots que vous ne voulez pas être dans le nouveau fichier :
Nous utilisons
std::stringstream
:Merci man, il fonctionne
OriginalL'auteur Pierre Fourgeaud
Il y a un moyen beaucoup plus facile de faire le travail:
OriginalL'auteur Jerry Coffin
Si vous souhaitez supprimer du texte à partir du fichier d'entrée (comme votre nom le suggère, mais ne fait pas état).
Alors vous avez besoin pour lire ligne par ligne. Mais ensuite, chaque ligne doit être analysée mot par mot pour vous assurer que vous pouvez supprimer le travail que vous êtes à la recherche pour
apple
.En effet. Également besoin de compenser pour la ponctuation. Mais je ne peux pas tout faire.
Merci man, il fonctionne
OriginalL'auteur Martin York