我有一个文本文件,其中有1个单词后跟~100个浮点数.浮点数由空格,制表符或换行符分隔.此格式在整个文本文件中重复多次.
例如,这就是文本文件的样子:
one 0.00591 0.07272 -0.78274 ...
0.0673 ...
0.0897 ...
two 0.0654 ...
0.07843 ...
0.0873 ...
three ...
...
...
Run Code Online (Sandbox Code Playgroud)
我的问题是,如何计算文件中的单词数量,我尝试使用fscanf但是一旦它读取第一个单词,之后我必须跳过所有浮点数直到下一个单词.
任何帮助将非常感激.
谢谢.
我将为您提供一个可能的解决方案的高级概述,让您自己弄清楚如何将其转换为C.
您可能会发现一些有用的库函数:
getline
阅读单行输入.它不是官方标准库的一部分,而是作为许多实现的扩展提供的,包括GNU的libc.如果你没有它,你可以使用fgets
和自己滚动realloc
.strtok
标记字符串,虽然使用起来有点尴尬.如果你想自己标记,你会觉得isspace
很有用.您将需要用NUL字节替换空白字符,以便将它们之间的字符视为单独的NUL终止字符串.strtod
尝试将字符数组解析为double
.double
您可以实现自己的小有限自动机,而不是使用库函数将数字解析为a .这是自动机理论中的经典教学实例.例如,参见本讲座(向下滚动"浮点数的语言").
归档时间: |
|
查看次数: |
91 次 |
最近记录: |