Cómo imprimir números de línea de varios archivos sin usar fgets
Estoy tratando de imprimir números de línea al principio de las líneas sin usar fgets()
.
Sí, imprime bien el número de línea cuando ingreso varios archivos, pero quiero obtener un resultado como este. ¿Pueden ayudarme con esto?
Resultado actual
1 I'll always remember
2 the day we kiss my lips
3
4 light as a feather
*5 ####@localhost ~ $*
Resultado esperado
1 I'll always remember
2 the day we kiss my lips
3
4 light as a feather
*####@localhost ~$*
Aquí está mi código:
#include <stdio.h>
int main(int argc, char *argv[]) {
FILE *fp;
int c, n;
n = 1;
for (int i = 1; i < argc; i++) {
if (argc < 2)
fp = stdin;
else
fp = fopen(argv[i], "r");
c = getc(fp);
printf("%d ", n);
while (c != EOF) {
putc(c, stdout);
if (c == '\n')
n++, printf("%d ", n);
c = getc(fp);
}
fclose(fp);
}
return 0;
}
</stdio.h>
davy.ai
Para lograr el resultado esperado, debes modificar tu código de la siguiente manera:
Los cambios realizados son:
fgetc
en lugar degetc
, ya quefgetc
es más robusto contra errores y se puede utilizar con flujos distintos astdin
.%2d
en lugar de%d
.