zoukankan      html  css  js  c++  java
  • C库函数:scanf、fscanf、printf、fprintf、sprintf、 snprintf

    1. scanf

     函数原型 int scanf(const char *format, ...); 

    功能:从标准输入 stdin 读取格式化输入。

    2.fscanf

    函数原型 int fscanf(FILE *stream, const char *format, …);

    功能:从stream指向的流(而不是标准输入流)中读取数据。除此之外,与scanf函数完全相同。

    比如:从流fp读取十进制的整数值并保存至变量x:fscanf(fp, “%d”, &x);

    3. printf

    函数原型:int printf(const char *format, ...) ;

    format 是字符串,包含了要被写入到标准输出 stdout 的文本

    功能:发送格式化输出到标准输出 stdout。

    4. fprintf

    函数原型:int fprintf(FILE *stream, const char *format, ...);

    stream 是指向 FILE 对象的指针,该 FILE 对象标识了流。format 是 C 字符串,包含了要被写入到流 stream 中的文本

    功能:向stream指向的流(而不是标准输出流)写入数据,除此之外,与printf函数完全相同。

    比如:向流fp写入整数x的十进制数值: fprintf(fp, "%d", x);

    Example1:

    #include <stdio.h>
    #include <stdlib.h>
    
    int main()
    {
       FILE * fp;
    
       fp = fopen ("file.txt", "w");
       fprintf(fp, "%s %s %s %d", "We", "are", "in", 2018);
       
       fclose(fp);
       
       return(0);
    }

    创建文件 file.txt,它的内容如下:We are in 2018

     5. sprintf

    函数原型: int sprintf(char *str, const char *format, ...);

    str 是指向一个字符数组的指针,该数组存储了 C 字符串。format 是字符串,包含了要被写入到字符串 str 的文本。

    功能:发送格式化输出到 str 所指向的字符串。

    example2:

    #include <stdio.h>
    #include <math.h>  //for M_PI
    
    int main()
    {
       char str[80];
    
       sprintf(str, "Pi 的值 = %f", M_PI);
       puts(str);
       
       return(0);
    }

    结果:Pi 的值 = 3.141593

    6. snprintf

    函数原型:

    int snprintf(char *restrict buf, size_t n, const char * restrict  format, ...);

    函数说明:先将可变参数 “...” 按照format的格式格式化为字符串,然后再将其拷贝至dest_str中。

    函数返回值:若成功则返回欲写入的字符串长度,若出错则返回-1。

    注意:如果格式化后的字符串长度小于size,则将字符串全部拷贝至dest_str中,并在字符串结尾处加上‘’;

               如果格式化后的字符串长度大于或等于size,则将字符串的(size-1)拷贝至dest_str中,然后在字符串结尾处加上''.

    example3:

    #include <stdio.h>
    #include <string.h>
     
    int main(int argc, char **argv)
    {
        char str[10];
        int len = snprintf(str, sizeof(str), "0123456789");
    
        printf("%d
    ", (int)sizeof(str));  
        printf("str=%s
    ", str);
        printf("%d
    ", (int)strlen(str));
         printf("%d
    ", len);
        return 0;
    }

    输出:

    10
    str=0123456789     
    10
    10

  • 相关阅读:
    Poj 1742 Coins(多重背包)
    Poj 2350 Above Average(精度控制)
    求二进制数中1的个数
    Poj 1659 Distance on Chessboard(国际象棋的走子规则)
    Poj 2411 Mondriaan's Dream(压缩矩阵DP)
    Poj 2136 Vertical Histogram(打印垂直直方图)
    Poj 1401 Factorial(计算N!尾数0的个数——质因数分解)
    poj 2390 Bank Interest(计算本利和)
    Poj 2533 Longest Ordered Subsequence(LIS)
    Poj 1887 Testing the CATCHER(LIS)
  • 原文地址:https://www.cnblogs.com/bencai/p/9145458.html
Copyright © 2011-2022 走看看