Comment afficher 2 paragraphes ensemble ?
geekat
Messages postés
242
Statut
Membre
-
fiddy Messages postés 11653 Statut Contributeur -
fiddy Messages postés 11653 Statut Contributeur -
Bonjour,
Je souhaite afficher un texte qui contient des sauts de ligne (pour le moment, j'essaie avec un seul saut de ligne).
Mais voilà, à l'affichage j'ai 2 textes, et des traitements séparés pour les 2 textes.
Voici le bout de code :
Pourquoi j'ai 2 textes ? Comment faire pour les afficher en 1 seul ?
Merci
Je souhaite afficher un texte qui contient des sauts de ligne (pour le moment, j'essaie avec un seul saut de ligne).
Mais voilà, à l'affichage j'ai 2 textes, et des traitements séparés pour les 2 textes.
Voici le bout de code :
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "tri.h"
#define TAILLE_MAX 4700
int main(){
FILE * fichier, * fichier_cree, * fichier_stopwords, * fichier_lexique;
char chaine[TAILLE_MAX];
char * words;
// Ouverture des fichiers
fichier = fopen("text-mining.txt","r"); // Texte avant analyse
/*---- parcourir le fichier text-mining */
while (fgets(chaine, TAILLE_MAX, fichier)!=NULL ) {
// Test ouverture
if (fichier_cree != NULL)
{
printf("Le fichier est ouvert!");
// Ecriture dans le fichier
/*-------------Ce code ne fait rien !! -----------------*/
char *tmp = strchr(chaine ,'\n');
if (tmp)
tmp = '\n';
printf("\n***Texte : %s", chaine);
}
}
return 0;
}
Pourquoi j'ai 2 textes ? Comment faire pour les afficher en 1 seul ?
Merci
A voir également:
- Comment afficher 2 paragraphes ensemble ?
- Supercopier 2 - Télécharger - Gestion de fichiers
- 2 ecran pc - Guide
- Appliquez à tous les paragraphes du document à télécharger, à l’exception des titres et des sous-titres, la mise en forme suivante : chaque paragraphe doit être espacé de 0,42 cm ou 12 pt du paragraphe qui suit les textes ne doivent pas être en retrait à droite et à gauche après ces modifications, sur quelle page se trouve le titre « la cheminée » dans le chapitre « informations diverses » ? - Guide
- Afficher taille dossier windows - Guide
- Windows 11 afficher d'autres options - Guide
1 réponse
Bonjour,
Je ne suis pas sur d'avoir bien compris ton problème.
Mais, il faut savoir que fgets() s'arrête au '\n' (sauf si la ligne est trop longue bien évidemment).
char *tmp = strchr(chaine ,'\n');
if (tmp)
tmp = '\n';
Deux erreurs. Tu remplaces '\n' par '\n', donc aucun intérêt.
Ensuite, ce n'est pas tmp='\n' qu'il faut mettre, mais
Que souhaites-tu faire exactement ? N'hésite pas à donner un exemple.
Je ne suis pas sur d'avoir bien compris ton problème.
Mais, il faut savoir que fgets() s'arrête au '\n' (sauf si la ligne est trop longue bien évidemment).
char *tmp = strchr(chaine ,'\n');
if (tmp)
tmp = '\n';
Deux erreurs. Tu remplaces '\n' par '\n', donc aucun intérêt.
Ensuite, ce n'est pas tmp='\n' qu'il faut mettre, mais
*tmp=....
Que souhaites-tu faire exactement ? N'hésite pas à donner un exemple.
En effet, grosse erreur :P. Je l'ai remplacé par :
char *tmp = strchr(chaine ,'\n');
if (tmp)
Ce qui ne change rien aussi.
Je souhaite qu'à l'affichage j'ai :
Au lieu de ça j'ai :
Ils s'affichent 2 fois chacun pour un paragraphe. Je veux les afficher ensemble pour un seul texte.
if (fichier_cree != NULL)
fichier_cree n'est pas initialisé. J'imagine que tu nous as montré qu'une partie de ton code, mais vérifie ce point.
C'est normal que tu obtiennes ça, puisque comme je t'ai dit fgets() s'arrête au '\n'.
Que veux-tu ? Qu'il s'arrête au deuxième paragraphe ou qu'il lise tout jusqu'au 4609 caractères ('\n' compris) ?
fichier_cree = fopen("fichier-créé.txt", "a"); // Texte après analyseJe veux qu'il lise tout le texte qu'il s'arrête à la fin.
En fait j'utilise plus loin la fonction qui va éclater la chaîne en mots, mais le retour à la ligne pose problème.
À chaque itération, tu lis une ligne avec fgets().
Ensuite, tu enlèves le '\n' pour mettre un '\0'.
Et enfin, tu concatènes dans un buffer avec strcat().