我正在学习C文件操作,我有一个特殊的问题,我需要把字母(a-Z,a-Z)存储为从文件中读取的字符串。所以,如果我有abcd&*dvcd那么abcd是一个字符串,dvcd是一个字符串。
基本上我有两个问题:
我不知道手上要放的绳子有多大。
我需要跳过非字母字符
我想我可以用fscanf格式字符串来解决这两个问题。这是我的想法。我需要以某种方式跳过使用fscanf格式字符串来查找我在文件中的位置。然后,我可以从保存的开始位置减去,找到需要malloc的字符串。然后,我malloc特定长度的字符串,然后,我可以返回到保存的位置并实际读取它。
但是,我不知道如何告诉fscanf不要存储扫描的字符串?
或者如果有其他方法允许跳过非字母字符?

最佳答案

您可以在fscanf的格式说明符中使用格式说明符,如“%[a-zA-Z]”。
就像下面的例子,

#include<stdio.h>
int main()
{
        char a[10];
        fscanf(stdin, "%[a-zA-Z]", a);
        printf("%s\n",a);
}

在本例中,它只读取stdin中的字母。它跳过非字母字符。

关于c - 如何使用fscanf跳过文件中的内容?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33227218/

10-13 07:10