用fscanf读取字符时 - 是否忽略了空格?

时间:2013-03-28 16:52:02

标签: c character scanf

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

c h a r a c t e r s

使用fscanf:

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

循环。它会读取空格吗?我想忽略空格。我应该使用

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

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

我无法检查,因为程序尚未完成。

2 个答案:

答案 0 :(得分:4)

将空格放在格式前面。

scanf(" %c", address)

空格实际上意味着“读取零或更多空白”,因此" %c"表示“忽略可选空格并读取字符(必须不是空格)”。

答案 1 :(得分:0)

正如您所说,在字符串格式中添加空格但在字符串格式" %c"

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