2012-04-20 5 views
-5

Disons que nous avons ce pointeur appelé texte Imprimer cette chose dans ce format:lancer l'impression après une ligne vide dans c ou C++

Date: Fri, 20 Apr 2012 11:42:05 GMT 
Server: Apache/2.2.21 (Unix) mod_ssl/2.2.21 OpenSSL/0.9.8r DAV/2 
PHP/5.3.6 
X-Powered-By: PHP/5.3.6 
Content-Length: 12 
Connection: close 
Content-Type: text/html 
     <--- empty line 

Démarrer l'impression de cette

Comment pouvez-vous commencer à imprimer quelque chose quand vous détectez une ligne vide en c ou C++?

+2

Vous devez mieux expliquer votre problème. Un "pointeur" ne s'imprime pas. –

+2

S'il vous plaît poster ce que vous avez essayé jusqu'à présent. – tuxuday

+1

@ user1341993 - Veuillez vous donner un nom d'utilisateur - plus facile à identifier. N'a pas besoin d'être ton vrai nom. –

Répondre

2

Si vous lisez ligne par ligne, vérifiez simplement la longueur de la ligne. Si la longueur est zéro, alors vous avez une ligne vide.

Si vous devez vérifier un tampon de mémoire, alors avoir un compteur qui est remis à zéro sur le retour à la ligne. Si vous atteignez une nouvelle ligne et que le compteur est déjà zéro, vous avez une ligne vide.

Edit: Une partie du code comment faire cela avec un tampon de mémoire:

char *buffer = "Hello\nWorld\n\nFoo\n"; 
char *data_start = NULL; 

char *line_beg, *p; 
for (line_beg = p = buffer; *p; p++) 
{ 
    if (*p == '\n') 
    { 
     if (line_beg == p) 
     { 
      /* Empty line */ 
      data_start = p + 1; 
      break; 
     } 
     line_beg = p + 1; 
    } 
} 

if (data_start != NULL) 
    printf("Data: %s", data_start); 
+0

un exemple Joachim? dans le code – user1341993

+0

if (:: strlen (pointer) == 0) // choses d'impression – FailedDev

+0

@ user1341993 Ok, ajouté –

0

Comme cela est la continuation d'une post précédente, je pense que vous pouvez explorer fdopen . Ce sera un moyen plus facile de lire la sortie ligne par ligne avec fgets. Vous pouvez alors facilement identifier les lignes vides,