Sobre la entrada estandar

Joselillo
30 de Enero del 2004
hola!, queria saber si alguien me podia dar alguna idea para hacer lo siguiente, mi programa se ejecuta desde la linea de ordenes, de la siguiente manera:
ejecutable [opcion] nombre de archivo.
Bien tengo que hacer una serie de cosas con ese archivo, otra posibilidad del programa es procesar la entrada estandar, es decir que en vez de un nombre de archivo puedo poner cualquier secuencia de palabras, mi pregunta es ¿como puedo saber si lo que estoy procesando es un archivo o una secuencia de palabras?se me habia ocurrido una opcion algo chapucera, con la funcion fopen() intentar abrir el archivo y si me da un error es porque no se trata de un archivo sino de palabras en la linea de ordenes, no tengo garantias de que se pueda hacer asi porque aun no lo he probadoy aun asi lo dudo que funcione. Asi que esa era mi cuestion si alguien me podria dar alguna idea o decir alguna funcion que compruebe si lo que tengo en la linea de ordenes es un archivo(de cualquier tipo) o una secuencia de palabras. Gracias, un saludo.

josuth
30 de Enero del 2004
hola

Creo que estás confundiendo cosas o yo no te he entendido bien. La entrada estandar es el teclado, es decir, cualquier cosa que lea el programa desde teclado durante la ejecución, y no una serie de argumentos que reciba el programa. Por lo tanto, yo entiendo procesar la entrada estandar por leer datos con scanf u otra función similar.

Si quieres saber si uno de los argumentos del programa es un fichero, puedes incluir entre las opciones del programa, una que indique que el argumento es un fichero.

Un saludo

Joselillo
30 de Enero del 2004
Hola! ante todo gracias por contestar, supongo que me habre explicado mal y habre confundido terminos porque soy novato; es sobre una practica, pero con lo que me has dicho creo que ya he entendido mucho, pensaba que al ejecutar el programa y no especificar el archivo que quiero procesar tendria que introducir una secuencia de palabras como argumento y supongo que llevaras razon, es decir no le tengo que pasar nada, solo que si no abro un archivo se lo tendre que ingresar yo desde el teclado, esto creo que se hara comprobando si el tercer argumento es nulo o no:ejecutable [-opcion] (archivo), ¿lo podría comprobar con el puntero argv verdad?,muchas gracias por la aclaracion, saludos.

josuth
30 de Enero del 2004
efectivamente, para ver si se ha indicado un archivo tienes que mirar los argumentos que han pasado al programa. Ya sabes argc te da el numero de argumentos y en argv están dichos argumentos, siempre teniendo en cuenta que argv[0] es el nombre del programa y en argv[1] empiezan los argumentos.

Un saludo