Fortran Coder

查看: 6918|回复: 2
打印 上一主题 下一主题

[文件读写] 想统计一篇文章的总字数

[复制链接]

716

帖子

4

主题

0

精华

大师

农村外出务工人员

F 币
624 元
贡献
319 点

新人勋章爱心勋章水王勋章元老勋章热心勋章

楼主
发表于 2014-11-28 17:26:18 | 显示全部楼层
本帖最后由 楚香饭 于 2014-11-28 17:28 编辑

你这代码问题太多了。语法错误一大堆,算法也不正确。

建议你直接使用这个代码:http://fcode.cn/code_gen-34-1.html 获取文件的行数和列数,每行的列数相加即可。

针对你的代码,我做了一些语法上的纠正。(算法就不纠正了,思路不对。)

最后,排版很重要、很重要、很重要、很重要

[Fortran] 纯文本查看 复制代码
Module Constant
  Implicit None
  Integer N, Nmax
  integer , allocatable :: Cnum(:) !// 定义为可变
  Character(len=512) :: Filename !// 必须指定长度
  Character(len=1) :: Sign
  integer :: Tonum !// Tonum放上面,不然主程序收不到
  Integer Count
  Integer Error
End Module Constant

Module Dealfile
  Use Constant

Contains
  Subroutine Totalnum(Filename, Count, Nmax, Sign, Cnum) !// 不带括号
    Integer Count, Nmax, I, N
    Character *1 Buffer(1:Nmax)
    Character (*) :: Filename
    Character *1 Sign
    Character, Allocatable :: String(:)
    Integer, Allocatable :: Cnum(:)
    integer :: j
    Open (10, File=Filename)
    Allocate (String(Nmax)) !// 此处为 NMax
    Allocate (Cnum(Nmax))  !// 同上
    Tonum = 0 !// 初值要给
    Do N = 1, Count
      Read (10, 100) String(:N)
      Write (*, *) String(N)
      do j = 1 , n
        Buffer(j:j) = String(j:j)
      end do
      Cnum(1) = 1
      Do I = 1, Nmax - 1
        If ((Buffer(I).Eq.Sign) .And. (Buffer(I+1).Ne.Sign)) Cnum(N) = Cnum(N) + 1
      End Do
      Tonum = Tonum + Cnum(N)
    End Do
    Close (10)
    100 Format (<Nmax>A1)
  End Subroutine Totalnum

End Module Dealfile

Program Main
  Use Constant
  Use Dealfile
  Implicit None !// 非常重要
  character(len=1) :: line
  Print *, '文件名:'
  Read *, Filename
  Count = 0
  Open (10, File=Filename, Status='old')
  Do
    Read (10, *, Iostat=Error) Line
    If (Error.Ne.0) Exit
    Count = Count + 1
  End Do
  Close (10)

  Print *, '行数:'
  Write (*, *) Count
  Print *, '行的最大列数:'
  Read *, Nmax
  Print *, '分隔符:'
  Read (*, 100), Sign
  Call Totalnum(Filename, Count, Nmax, Sign, Cnum) !// cNum 不带括号
  Print *, Tonum

  100 Format (A1)
End Program Main
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-6-12 16:22

Powered by Tencent X3.4

© 2013-2024 Tencent

快速回复 返回顶部 返回列表