【问题标题】:Reads only alphabetic chars with fscanf使用 fscanf 仅读取字母字符
【发布时间】:2013-01-15 15:10:38
【问题描述】:

你好,我有一个简单的函数来读取文件

while(fscanf(fp," %255[a-zA-Z]",test) == 1)
{
    puste = 1;
    push(&drzewo,test);
}

它应该只读取只包含字母字符的单词并且效果很好。例如,当我的文件中有一个数字时,我的 while 循环退出;应该怎么改?

【问题讨论】:

  • 现在它只读取字母字符。你想要它做什么?
  • 你到底想读什么字?即使那个词包含非字母字符?
  • 据我了解,他希望它跳过其他所有内容。您必须从 while 条件中取出 fscanf 并将该测试放入循环中,并将其他内容作为您的条件。

标签: c


【解决方案1】:

当然它会停止,因为 fscanf() 调用将无法进行您需要的转换,因此返回 0。您希望它做什么?

通常最好使用fgets() 读取整行,然后“手动”解析它们,这样很容易什么都不做,如果找不到所需的数据,则读取另一行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-03-21
    • 2014-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-03
    • 1970-01-01
    相关资源
    最近更新 更多