采用fscanf从文件输入带空格的字符串

    技术2023-10-30  101

    scanf函数一遇上空格就会结束字符串的输入

    fscanf也是如此,例如下面代码:

    #include<stdio.h> int main() {     FILE *fp;     char str[50];     fp = fopen("a.txt","w");     fprintf(fp,"%s","Happy Day!");     fclose(fp);     fp = fopen("a.txt","r");    fscanf(fp,"%s",str);     printf("%s",str);     fclose(fp);     return 0; }

    由于fscanf函数遇上空格就会结束字符串输入,所以程序只能输出显示Happy。

    将上述程序中的    fscanf(fp,"%s",str);换成

    fscanf(fp,"%[^\n]",str);

    %[^\n]代表遇上\n才结束字符串的读取。

    #include<stdio.h> int main() {     FILE *fp;     char str[50];     fp = fopen("a.txt","w");     fprintf(fp,"%s","Happy Day!");     fclose(fp);     fp = fopen("a.txt","r");     fscanf(fp,"%[^\n]",str);     printf("%s",str);     fclose(fp);     return 0; }

     

    Processed: 0.010, SQL: 9