我在从 fortran 中的 txt 文件中读取处理器 ID 时遇到问题



我正在尝试创建一个用于定义处理器 ID 的 Fortran 代码。我可以将处理器 ID 写入文本文件。pid2.txt的文本文件已创建,但我无法在 Fortran 中读取它。当我以notepadNotePad++打开文本文件时,一切似乎都很好!在Fortran中,当我打开文本文件时,它显示未知参数。任何人都可以帮助我解决这个问题吗?

文本文件的内容是

ProcessorId       
BFEBFBFF00010676  

示例代码如下:

program get_PID
implicit none
character(200) :: line
call system('wmic cpu get ProcessorId >pid2.txt ' )
open (1,file='pid2.txt')
read (1,*) line
read (1,*) line
CLOSE (1)   
end program

你有什么建议吗?

您案例中的问题是来自wmic的输出编码。Windows 默认使用 UTF-16。Fortran 尚无法处理此编码。参考英特尔 Fortran 的帮助,仅支持 UTF-8,如此处所述。

因此,您必须将输出的编码更改为 ANSI 和/或本地代码页。这可以通过管道通过more命令管道wmic结果来完成,如 SO 超级用户站点在组合-批处理-wmic-ansi-unicode-output-formatting 下所述。

请按如下方式更改您的系统调用:

call system('wmic cpu get ProcessorId | more >pid2.txt ' )

正如预期的那样,您现在将在代码中获取处理器 ID 信息。

希望对您有所帮助。

最新更新