Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - problemi per il mio programma
Forum - C/C++ - problemi per il mio programma

Avatar
fsfilippo (Normal User)
Rookie


Messaggi: 51
Iscritto: 13/02/2010

Segnala al moderatore
Postato alle 12:20
Domenica, 28/03/2010
ciao a tutti volevo avere un aiuto perchè il simbolo % non viene riconosciuto
es.
Codice sorgente - presumibilmente C++

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <windows.h>
  4. main ()
  5. FILE *fh = fopen("C:\\file.txt", "w");
  6. fprintf(fh, "%ciao");
  7. fclose(fh);
  8. system("PAUSE");
  9. return 0;


% non viene riconosciuto quando vado ad aprire il file di testo ed esce una cosa strana
problema n2
Codice sorgente - presumibilmente C++

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <windows.h>
  4. main ()
  5. FILE *fh = fopen("C:\\file.vbs", "w");
  6. fprintf(fh, "Do \n msgbox ""ciao"" \n loop");
  7. fclose(fh);
  8. system("PAUSE");
  9. return 0;


questo e per fare uno script vbs in c ma la scritta ciao non viene riconosciuta mi viene solo uno spazio bianco spero che mi aiutate
ciao :) :)

PM Quote
Avatar
TheKaneB (Member)
Guru^2


Messaggi: 1792
Iscritto: 26/06/2009

Segnala al moderatore
Postato alle 12:31
Domenica, 28/03/2010
% è un carattere speciale, se usato nella stringa di formattazione delle funzioni printf (e parenti).

In quel caso % viene accoppiato con il primo carattere alla sua destra, diventando %c. Questo è un codice speciale per dire alla funzione printf che vuoi stampare il valore di una variabile di tipo char, che andrà a pescare nello stack (tramite va_list) e, non trovandolo, beccherà un valore random che si trovava in quel posto per puro caso.

Se proprio devi stampare dei caratteri speciali, consulta intanto il manuale del printf, alla voce Format String, dove sono elencati i caratteri speciali. Per questi caratteri è necessario premettere un backslash, in questo modo: "\%ciao".

PM Quote
Avatar
fsfilippo (Normal User)
Rookie


Messaggi: 51
Iscritto: 13/02/2010

Segnala al moderatore
Postato alle 12:39
Domenica, 28/03/2010
grazie ! girovagando un po in rete ho trovato e ho risolto
qualcuno sa come risolvo anche il secondo problema

PM Quote
Avatar
TheKaneB (Member)
Guru^2


Messaggi: 1792
Iscritto: 26/06/2009

Segnala al moderatore
Postato alle 12:41
Domenica, 28/03/2010
usa la stessa tecnica... scrivi \"ciao\"
altrimenti le " vengono riconosciute come fine stringa

PM Quote
Avatar
fsfilippo (Normal User)
Rookie


Messaggi: 51
Iscritto: 13/02/2010

Segnala al moderatore
Postato alle 22:11
Domenica, 28/03/2010
uso """" doppie cosi le riconosce come non comando comunque non sono riuscito a risolvere il secondo problema

PM Quote
Avatar
TheKaneB (Member)
Guru^2


Messaggi: 1792
Iscritto: 26/06/2009

Segnala al moderatore
Postato alle 1:35
Lunedì, 29/03/2010
Testo quotato

Postato originariamente da fsfilippo:

uso """" doppie cosi le riconosce come non comando comunque non sono riuscito a risolvere il secondo problema



questo è C, non è Pascal :D

PM Quote
Avatar
fsfilippo (Normal User)
Rookie


Messaggi: 51
Iscritto: 13/02/2010

Segnala al moderatore
Postato alle 11:05
Lunedì, 29/03/2010
si lo so pero facendo printf("""ciao"""); cosi se lo salvo su un file di testo viene "ciao"

PM Quote