A voir également:
- Synchronisateur de sous-titres en c++
- Appliquez à tous les paragraphes du document à télécharger, à l’exception des titres et des sous-titres, la mise en forme suivante : - Guide
- Comment enlever les sous-titres télécommande universelle - Forum Téléviseurs
- Les sous titres ne s'affichent pas sur la télé samsung - Forum Téléviseurs
- Tv lg sous-titres reviennent - Forum Téléviseurs
- Comment désactiver les sous-titres ? ✓ - Forum Téléviseurs
6 réponses
https://en.cppreference.com/w/cpp/string/basic_string
il y a le descriptif de tout ce que tu peux faire facilement avec string.
il y a getline, operator[] en particulier.
Tu ne peux pas dire à getline d'aller ligne 8, il faut que tu fasse 8 fois getline.
Ensuite le plus simple est de stocker dans un string. Tu accedes à une lettre en particulier avec [] (std::string a="esi"; cout<<a[1]<< " un s";). Le même opérateur pour modifier la valeur.
Mais ça devient compliqué à mon avis. Le plus simple à mon avis est de récupérer des entiers, de les modifier et de les réécrire.
En tête utile :https://en.cppreference.com/w/cpp/io/basic_stringstream
je n'ai pas testé, il manque pas mal de morceaux de code, mais c'est en gros l'idée de ce que tu dois faire.
il y a le descriptif de tout ce que tu peux faire facilement avec string.
il y a getline, operator[] en particulier.
Tu ne peux pas dire à getline d'aller ligne 8, il faut que tu fasse 8 fois getline.
Ensuite le plus simple est de stocker dans un string. Tu accedes à une lettre en particulier avec [] (std::string a="esi"; cout<<a[1]<< " un s";). Le même opérateur pour modifier la valeur.
Mais ça devient compliqué à mon avis. Le plus simple à mon avis est de récupérer des entiers, de les modifier et de les réécrire.
En tête utile :https://en.cppreference.com/w/cpp/io/basic_stringstream
std::string ligne; std::sstream ss; int heure,minutes;float secondes,temps; getline(file,ligne); ss.str(ligne.substr(0,2)); ss>>heure; ss.str(ligne.substr(3,2)); ss>>minutes; ss.str(ligne.substr(6,5)); ss>>secondes; temps=3600*heure+60*minutes+secondes; temps+=2.0;//decalage de 2 secondes du temps heure=temps/3600; minutes=(temps-heures*3600)/60; secondes=(temps-heures*3600-minutes*60); cout<<heures<<':'<<minutes<<':'<<secondes;
je n'ai pas testé, il manque pas mal de morceaux de code, mais c'est en gros l'idée de ce que tu dois faire.
Salut, et merci de ta réponse.
Alors alors, j'ai compris ton idée, mais pas encore le niveau technique pour comprendre la mise en application.
est ce que tu pourrais me donner plus de détails notamment par rapport a ces lignes de codes :
"ss.str(ligne.substr(0,2));
ss>>heure;
ss.str(ligne.substr(3,2));
ss>>minutes;
ss.str(ligne.substr(6,5));
ss>>secondes;"
En fait, je ne connais pas .substr et .str... Je pense que a chaque fois ca te permet de recuperer le caractere x de la ligne et de les stocker dans tes variable de temps?
Puis, ne manque-t-il pas une boucle? parce que la ca va faire une seule ligne non?
Enfin, "cout<<heures<<':'<<minutes<<':'<<secondes;" permet de réecrire le temps modifié, mais est ce que ca supprime la ligne dans le fichier?
merci encore pour ton aide :)
Alors alors, j'ai compris ton idée, mais pas encore le niveau technique pour comprendre la mise en application.
est ce que tu pourrais me donner plus de détails notamment par rapport a ces lignes de codes :
"ss.str(ligne.substr(0,2));
ss>>heure;
ss.str(ligne.substr(3,2));
ss>>minutes;
ss.str(ligne.substr(6,5));
ss>>secondes;"
En fait, je ne connais pas .substr et .str... Je pense que a chaque fois ca te permet de recuperer le caractere x de la ligne et de les stocker dans tes variable de temps?
Puis, ne manque-t-il pas une boucle? parce que la ca va faire une seule ligne non?
Enfin, "cout<<heures<<':'<<minutes<<':'<<secondes;" permet de réecrire le temps modifié, mais est ce que ca supprime la ligne dans le fichier?
merci encore pour ton aide :)
Pour les fonctions str et substr, je t'invite à lire les liens fournis, ils expliquent les fonctions.
sstream est assez spcal, il permet de traiter un string comme un flux (type cout ou fstream), et permet donc de lire écrire différents type de données facilement dans un string).
Bien entendu, ça ne traite qu'une seule ligne et qu'un seul temps sur les deux, il faut faire une boucle et d'autre choses. Traite déjà un fichier avec une ligne, tu étendra après. Le mieux est de découpé en fonction, et de mettre le traitement d'une ligne dans une fonction bien spécifique.
cout écrit sur la sortie standard, c'est tout. Ton fichier ne sera modifié que si tu écris dedans. Pour commencer, je te conseil de créer un autre fichier plutôt que de modifier au fur à mesure celui que tu lis : ça t'évitera des bourde et pas mal de soucis de déplacements dans le fichier.
sstream est assez spcal, il permet de traiter un string comme un flux (type cout ou fstream), et permet donc de lire écrire différents type de données facilement dans un string).
Bien entendu, ça ne traite qu'une seule ligne et qu'un seul temps sur les deux, il faut faire une boucle et d'autre choses. Traite déjà un fichier avec une ligne, tu étendra après. Le mieux est de découpé en fonction, et de mettre le traitement d'une ligne dans une fonction bien spécifique.
cout écrit sur la sortie standard, c'est tout. Ton fichier ne sera modifié que si tu écris dedans. Pour commencer, je te conseil de créer un autre fichier plutôt que de modifier au fur à mesure celui que tu lis : ça t'évitera des bourde et pas mal de soucis de déplacements dans le fichier.
ok :)
derniere petite question, est ce qu'il est possible de garder deux fichiers ouverts en meme temps, un ou je lis, et l'autre ou je réecris? ou bien je dois les rouvrir/fermer a chaque fois?
merci encore :)
derniere petite question, est ce qu'il est possible de garder deux fichiers ouverts en meme temps, un ou je lis, et l'autre ou je réecris? ou bien je dois les rouvrir/fermer a chaque fois?
merci encore :)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question