Quiero que mi programa C solicite al usuario que escriba el nombre del archivo que desea abrir e imprima el contenido de ese archivo en la pantalla. Estoy trabajando desde el tutorial de C y tengo el siguiente código hasta ahora. Pero cuando lo ejecuto, en realidad no me permite ingresar el nombre del archivo. (Tengo el 'presione cualquier botón para continuar', estoy usando bloques de código)Abrir un archivo desde argumentos de línea de comando en C
¿Qué estoy haciendo mal aquí?
#include <stdio.h>
int main (int argc, char *argv[])
{
printf("Enter the file name: \n");
//scanf
if (argc != 2) /* argc should be 2 for correct execution */
{
/* We print argv[0] assuming it is the program name */
printf("usage: %s filename", argv[0]);
}
else
{
// We assume argv[1] is a filename to open
FILE *file = fopen(argv[1], "r");
/* fopen returns 0, the NULL pointer, on failure */
if (file == 0)
{
printf("Could not open file\n");
}
else
{
int x;
/* Read one character at a time from file, stopping at EOF, which
indicates the end of the file. Note that the idiom of "assign
to a variable, check the value" used below works because
the assignment statement evaluates to the value assigned. */
while ((x = fgetc(file)) != EOF)
{
printf("%c", x);
}
fclose(file);
}
}
return 0;
}
+1. Así es como hacer una pregunta sobre la tarea. "He llegado hasta aquí y he llegado a un obstáculo" en lugar de "Escribir este programa para mí". –