fscanf() 处理空格的技巧

在使用 fscanf() 读取包含空格的文本时,可以通过以下技巧解决遇到的问题:

  1. 使用 %*c 跳过空格:在读取目标数据之前,使用 fscanf(fpr, "%*c", s); 跳过前导空格。
  2. 使用 scanf(" %s"):在读取操作中,在格式字符串前面添加空格,以指示读取包含空格的数据。

示例代码:

#include 

int main() {
    FILE *fpw = fopen("data1.txt", "w");
    if (fpw == NULL) {
        return 0;
    }
    char s[20];
    gets(s);
    fprintf(fpw, "%s", s);
    fclose(fpw);

    FILE *fpr = fopen("data1.txt", "r");
    if (fpr == NULL) {
        return 0;
    }
    fscanf(fpr, "%*c%s", s); // 跳过空格再读取字符串
    puts(s);
    getchar();
    fclose(fpr);
    return 0;
}

这样,输入 "big baby" 时,输出将为 "big baby"。

docx 文件大小:11.43KB