Fortran - Comando fortran para escribir numeros, similar a zfill() de python

 
Vista:
sin imagen de perfil
Val: 7
Ha mantenido su posición en Fortran (en relación al último mes)
Gráfica de Fortran

Comando fortran para escribir numeros, similar a zfill() de python

Publicado por Lucas Lodeiro (2 intervenciones) el 27/01/2020 19:21:10
Buenas!
Tengo un ciclo do con una variable "J", la cosa es que dentro de dicho ciclo do, tengo que definir el nombre de un archivo que es dependiente de la variable... los archivos se llaman: hola0001, hola0002 y asi... hola0010...hola0156, etc.
En python se puede ocupar el comando zfill() para pedirle que imprima el numero como string y ponga tantos ceros delante como sea necesario para completar las cifras. Algo asi:
name = "hola"+str(J).zfill(4)

Saben como lograr el mismo resultado en fortran???

Saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 7
Ha mantenido su posición en Fortran (en relación al último mes)
Gráfica de Fortran

Comando fortran para escribir numeros, similar a zfill() de python

Publicado por Lucas (2 intervenciones) el 27/01/2020 20:57:17
Ya encontre como, se debe definir un formato deescritura tipo '(I4.4)' con eso obligo la escritura de 4 cifras con ceros adelante rellenando.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar

Comando fortran para escribir numeros, similar a zfill() de python

Publicado por francsco (5 intervenciones) el 29/02/2024 18:12:17
prueba con esto:
write (6,'(i6.6)') 123
deberias obtener esto: 000123
En el formato, el identificador "I" para escribir numeros enteros, tiene la opcion de especificar la cantidad de digitos que se deben imprimir. Esto se indica con los digitos despues del punto asi: i12.10, formato de numero entero para escribir un numero entero (o no) que sera escrito en la salida con un espacio de 12 caracteres de los cuales 10 siempre deben estar visibles. Asi un numero com 123 aparecera asi: bb0000000123, en donde la b = significa un espacio en blanco. Esto solo funciona com campos de formato entero (I).
Otra forma es hacer una funcion que convierta el numero a una cadena caracter y luego reemplazar espacios por ceros.
character*(*) function enterotochar (n)
character c*10
write (c,'(i10)') n
do i = 1, 10
if c(i:i) .eq. ' ') c(i:i) = '0'
enddo
enterotochar = c
return
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar