fscanf()函數基本用法


FILE *fp; while(!feof(fp)) { fscanf(fp,"%s%d%lf",a,&b,&c);//這里%s對應的a不需要加上取地址符號&,因為a為數組名稱,其本身就表示該數組的首地址
printf("%s%d%lf",a,b,c) }

 

fscanf能正確操作的txt文件編碼方式為ANSI,以下編碼方式均不能使函數正常執行:UTF-8,Unicode,Unicode big endian

這里假如說txt文本內的內容為(對應上面三個數據來寫):

張三  18  1.74

。。。

這里數據與數據之間需要以制表符/或者空格分開即可,數據之間就像scanf()函數一樣,若以逗號分隔數據,則scanf中也需要加入逗號,例如scanf("%d,%d",a,b);再輸入數據時就要輸入1,5才能正確輸入

但這里嘗試fscanf()函數之后並未能出現同樣的效果,以后解決了再更新

上菜展示一下效果:

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int num;
    char name[20];
    double height;
    FILE *fp;
    fp = fopen("d:\\1.txt", "r+");//“r+” 以可讀寫方式打開文件,該文件必須存在,d:\\1.txt表示d盤根目錄下的1.txt文件
    if (fp == NULL)
    {
        printf("Cannot open the file!\n");
        exit(0);
    }
    printf("學號\t姓名\t身高\n");

    while (!feof(fp))
    {
        fscanf(fp, "%d%s%lf", &num, name, &height);
        printf("%d\t%s\t%g", num, name, height);

    }
    printf("\n");
    fclose(fp);//要記得關閉文件
    return 0;
}

 

 原文地址

 
       


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM