【问题标题】:When reading characters with fscanf - are spaces ignored?使用 fscanf 读取字符时 - 是否忽略空格?
【发布时间】:2013-03-28 16:52:01
【问题描述】:

我正在阅读以下格式的文件:

c h a r a c t e r s

使用 fscanf:

fscanf(file, "%c", address);

在一个循环中。它也会读取空格吗?我想忽略空格。我应该使用

fscanf(file, "%c ", address);

相反? 但是,行中的最后一个字符之后没有空格,所以我认为它不会读取最后一个字符,因为它不在“x”中,而是在“x”中。

我无法检查,因为程序还没有完成。

【问题讨论】:

  • 我会使用fgetc 并测试它的结果。

标签: c character scanf


【解决方案1】:

将空格放在格式前面。

scanf(" %c", address)

空格的真正意思是“读取零个或多个空格”,所以" %c"的意思是“忽略可选的空格并读取一个字符(不一定是空格)”。

【讨论】:

  • 谢谢。我在任何地方都找不到该信息。
【解决方案2】:

如你所说,在字符串格式中添加空格,但在字符串格式的开头" %c"

int main()
{
    FILE *file = fopen("file.txt","r");
    char address;
    while(fscanf(file ," %c", &address)>0) {
        printf("_%c", address);
    }
    printf("_\n");
}

【讨论】:

    猜你喜欢
    • 2021-08-29
    • 2023-03-26
    • 2013-04-28
    • 1970-01-01
    • 2018-03-21
    • 2020-11-16
    • 2016-10-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多