necesito escribir un tal definen en C/C++uso de #define en C/C++
#define scanf(fscanf(inf,
con el fin de reemplazar cada scanf(
con fscanf(inf,
literaria
Pero no sé cómo ...
Gracias
necesito escribir un tal definen en C/C++uso de #define en C/C++
#define scanf(fscanf(inf,
con el fin de reemplazar cada scanf(
con fscanf(inf,
literaria
Pero no sé cómo ...
Gracias
que desee utilizar un Variadic macro.
En su caso, creo que quiere:
#define scanf(...) fscanf(inf,__VA_ARGS__)
Tenga en cuenta que esto no es portátil. –
Esto podría funcionar. –
@Brian: está en el borrador de C++ 0x y es compatible con GNU, Intel y Microsoft, por lo que al menos en x86 lo consideraría lo suficientemente portátil para la mayoría de los propósitos – Christoph
No se puede reemplazar un paréntesis. Si está utilizando Visual C++, entonces se puede utilizar una macro variadic para lograr lo que quieren:
#define scanf(format, ...) fscanf(inf, format, __VA_ARGS__)
Otros compiladores pueden tener una instalación similar, pero no estoy familiarizado con ellos.
Es estándar C99. §6.10.3.1 –
Coloréjame sorprendido. Gracias por la aclaración. –
estándar C99 hasta donde yo sé. – ShinTakezou
imposible de la manera en que lo intentó, por supuesto.
que tiene que hacer cosas como
#define scanf(S, ...) fscanf(inf, S, __VA_ARGS__)
Véase, por ejemplo here
EDITAR: GNU cpp también admite macros variadic; se VA_ARGS precedida por doble guión y terminó con doble subrayado ... Tengo que estudiar escapar marcado aquí ...
Texto envolvente con retrocesos para crear código en línea. Es la mejor manera de escribir '__VA_ARGS__' en medio de un párrafo. ;) –
Sólo tiene que escribir todo el código usando fscanf, y definir el nombre de archivo con una macro como esta:
#ifdef USE_SCANF
#define SCANF_FILE(file) stdin
#else
#define SCANF_FILE(file) file
#endif
fscanf(SCANF_FILE(blah), "%d", &a);
Tengo que escribir un tal definen en C++
no, no lo hace. Lo que realmente quieres hacer es redirigir stdin
.
freopen(inf, "r", stdin);
Solo di no a dicho uso de macros. –
@Brian Es más de curiosidad que de uso ... – Betamoo
C o C++, ¿y qué compilador? –