当前位置: 首页 > ops >正文

在Fortran中输出类似Markdown的表格

在Fortran中输出类似Markdown的表格

在Fortran中输出类似Markdown的表格可以通过格式化输出实现。以下是一些方法和示例:

基本方法

使用格式说明符

program markdown_tableimplicit nonecharacter(len=20) :: names(3)real :: values(3)integer :: i! 数据names = ['Apple', 'Banana', 'Orange']values = [2.5, 1.8, 3.2]! 输出表头write(*,'(A20,A1,A10)') 'Fruit', '|', 'Price (€)'write(*,'(A20,A1,A10)') '--------------------', '|', '----------'! 输出数据行do i = 1, 3write(*,'(A20,A1,F10.2)') names(i), '|', values(i)end do
end program markdown_table

使用循环和字符串操作

program advanced_tableimplicit nonecharacter(len=15), parameter :: fmt_header = '(A15,2("|",A15))'character(len=15), parameter :: fmt_sep = '(15("-"),2("+",15("-")))'character(len=15), parameter :: fmt_row = '(A15,2("|",F15.2))'character(len=15) :: items(3) = ['Laptop', 'Phone', 'Tablet']real :: prices(3) = [999.99, 699.50, 349.99]integer :: stocks(3) = [25, 40, 15]integer :: i! 表头write(*,fmt_header) 'Item', 'Price ($)', 'Stock'write(*,fmt_sep)! 数据行do i = 1, 3write(*,fmt_row) items(i), prices(i), real(stocks(i))end do
end program advanced_table

更复杂的动态表格

module table_utilsimplicit none
containssubroutine print_table(header, data, widths)character(len=*), intent(in) :: header(:)real, intent(in) :: data(:,:)integer, intent(in) :: widths(:)integer :: i, j, ncols, nrowscharacter(len=100) :: fmtncols = size(header)nrows = size(data, 1)! 创建格式字符串write(fmt, '("(",I0,"(A",I0,",1X))")') ncols, (widths(j), j=1,ncols)! 打印表头write(*,fmt) headerwrite(*,fmt) (repeat('-', widths(j)), j=1,ncols)! 创建数据格式write(fmt, '("(",I0,"(F",I0,".2,1X))")') ncols, (widths(j), j=1,ncols)! 打印数据do i = 1, nrowswrite(*,fmt) (data(i,j), j=1,ncols)end doend subroutine print_tableend module table_utilsprogram test_tableuse table_utilsimplicit nonecharacter(len=15) :: headers(3) = ['Temperature', 'Pressure', 'Humidity']real :: measurements(4,3) = reshape( &[25.4, 1013.2, 45.0, &26.1, 1012.8, 43.5, &24.9, 1013.5, 47.2, &25.7, 1012.9, 46.1], [4,3])integer :: col_widths(3) = [12, 10, 10]call print_table(headers, measurements, col_widths)
end program test_table

输出到文件

program file_tableimplicit noneinteger, parameter :: n = 4character(len=10) :: cities(n) = ['New York', 'London', 'Tokyo', 'Paris']real :: temps(n) = [22.5, 18.3, 25.1, 20.7]integer :: i, u! 打开文件open(newunit=u, file='weather.md', status='replace')! 写入Markdown表格write(u, '(A)') '| City      | Temperature |'write(u, '(A)') '|-----------|-------------|'do i = 1, nwrite(u, '(A,A,A,F6.1,A)') '| ', trim(cities(i)), ' | ', temps(i), ' |'end do! 关闭文件close(u)print *, 'Table written to weather.md'
end program file_table

这些示例展示了如何在Fortran中创建类似Markdown的表格输出。你可以根据需要调整格式说明符和布局来满足特定的表格需求。

http://www.xdnf.cn/news/5580.html

相关文章:

  • Python Day23 学习
  • [pgsql]未认可的配置参数 “database_mode“
  • AutoDL租用服务器教程
  • 各类大豆相关数据集大合集
  • 动手学深度学习12.3.自动并行-笔记练习(PyTorch)
  • 四、SpringMVC实战:构建高效表述层框架
  • 【AutoGen深度解析】下一代AI代理编程框架实战指南
  • 日语学习-日语知识点小记-构建基础-JLPT-N4阶段(19):て形/ないで
  • SAP学习笔记 - 开发09 - BTP简介,BTP在SAP产品中的位置
  • 代码随想录算法训练营第三十八天|动态规划part6(完全背包2)
  • 莒县第六实验小学开展全国“防灾减灾日”防震演练活动
  • vue3+dhtmlx-gantt实现甘特图展示
  • react项目阅读记录
  • 打破产品思维--被讨厌的勇气--实战5
  • phpstorm2024.3 设置中文
  • 《Vue.js》阅读之响应式数据与副作用函数
  • Hive HA配置高可用
  • 无线定位之 二 SX1302 网关源码 thread_down 线程详解
  • 奇次谐波和偶次谐波【EMC】
  • RabbitMQ ③-Spring使用RabbitMQ
  • 基于 Spring Boot 瑞吉外卖系统开发(十二)
  • labview硬件驱动——测试软件的安装(基于win11系统)
  • 支持向量机算法
  • K8s进阶之一文搞懂PV,PVC及SC
  • 修改网页标签处文字
  • kubuntu系统详解
  • 【RabbitMQ】应用问题、仲裁队列(Raft算法)和HAProxy负载均衡
  • 类和对象(1)--《Hello C++ Wrold!》(3)--(C/C++)
  • 【Linux笔记】——进程信号的保存
  • 51单片机引脚功能概述