Oppure

Loading
28/03/10 10:20
fsfilippo
ciao a tutti volevo avere un aiuto perchè il simbolo % non viene riconosciuto
es.
#include <stdio.h>
#include <stdlib.h> 
#include <windows.h>
main ()
FILE *fh = fopen("C:\file.txt", "w");
fprintf(fh, "%ciao");
fclose(fh);
system("PAUSE");
return 0;

% non viene riconosciuto quando vado ad aprire il file di testo ed esce una cosa strana
problema n2
#include <stdio.h>
#include <stdlib.h> 
#include <windows.h>
main ()
FILE *fh = fopen("C:\file.vbs", "w");
fprintf(fh, "Do \n msgbox ""ciao"" \n loop");
fclose(fh);
system("PAUSE");
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 :) :)
aaa
28/03/10 10:31
TheKaneB
% è 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".
aaa
28/03/10 10:39
fsfilippo
grazie ! girovagando un po in rete ho trovato e ho risolto
qualcuno sa come risolvo anche il secondo problema
aaa
28/03/10 10:41
TheKaneB
usa la stessa tecnica... scrivi \"ciao\"
altrimenti le " vengono riconosciute come fine stringa
aaa
28/03/10 20:11
fsfilippo
uso """" doppie cosi le riconosce come non comando comunque non sono riuscito a risolvere il secondo problema
aaa
28/03/10 23:35
TheKaneB
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
aaa
29/03/10 9:05
fsfilippo
si lo so pero facendo printf("""ciao""";); cosi se lo salvo su un file di testo viene "ciao"
aaa