stdio.h

标准库

printf

printf("格式化字符串",参变量)
格式化输出

sprintf

sprintf 是一个标准库函数,用于将格式化的数据写入字符串中。它的功能类似于 printf,但不是将输出打印到控制台,而是将格式化后的结果存储到一个字符串中。
sprintf(char *str,"format",...)

  • str是目标字符串的指针,存储格式化后的结果
  • "format"是格式控制字符串,指定存储格式
  • ...是可选参数列表,根据format来传递相应参数

将十进制数据转换为为十六进制数据

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
char *msg = "12345678";
int len = strlen(msg);
printf("%d\n",len);
int i,j;
char *result = (char*)malloc(32);
memset(result,0x00,sizeof(char)*32);
for(j=0;j<16;j++){
printf("%d",result[j]);
}
printf("\n");
for(i=0;i<len;i++){
sprintf(result+i*2,"%2x",msg[i]);
}
for(j=0;j<32;j++){
printf("%c",result[j]);
}
return 0;
>>>
8
0000000000000000
3132333435363738

snprintf

格式化输出字符串,并将结果写入到指定的缓冲区,与 sprintf() 不同的是,snprintf() 会限制输出的字符数,避免缓冲区溢出。
int snprintf(char * str,size_t size,const char * format,...);

  • str:目标字符串,用于存储格式化后的字符串的字符数组的指针。
  • size:字符数组的大小。
  • format:格式化字符串。
  • ...:可变参数

fprintf

int fprintf(FILE *stream, const char *format, ...)
发送格式化输出到流stream中

  • stream,这是指向 FILE 对象的指针,该 FILE 对象标识了流。
  • format,格式化标签
  • **…**,参变量
1
2
3
4
5
6
7
8
9
10
11
#include <stdio.h>
#include <stdlib.h>

int main()
{
FILE * fp;
fp = fopen ("file.txt", "w+");
fprintf(fp, "%s %s %s %d", "We", "are", "in", 2014);
fclose(fp);
return(0);
}

putc

int putc(int char, FILE *stream)

  • char,被写入的字符。该字符以其对应的 int 值进行传递。
  • stream,指向 FILE 对象的指针,该 FILE 对象标识了要被写入字符的流。

getc

int getc(FILE *stream)

  • stream,指向 FILE 对象的指针。
  • 返回值,该函数以无符号 char 强制转换为 int 的形式返回读取的字符,如果到达文件末尾或发生读错误,则返回 EOF。

fputc

int putc(int char, FILE *stream)

  • char,要被写入的字符。该字符以其对应的 int 值进行传递。
  • stream,指向 FILE 对象的指针,该 FILE 对象标识了要被写入字符的流。
  • 返回值,以无符号 char 强制转换为 int 的形式返回写入的字符,如果发生错误则返回 EOF。

fgetc

int fgetc(FILE *stream)
指定的流 stream 获取下一个字符(一个无符号字符),并把位置标识符往前移动。

  • stream,指向 FILE 对象的指针。
  • 返回值,该函数以无符号 char 强制转换为 int 的形式返回读取的字符,如果到达文件末尾或发生读错误,则返回 EOF。

fputs

int fputs(const char *str, FILE *stream)
把字符串写入到指定的流 stream 中,但不包括空字符。

  • str,一个字符数组,包含了要写入的以空字符终止的字符序列。
  • stream,指向 FILE 对象的指针,该 FILE 对象标识了要被写入字符串的流。

fgets

char *fgets(char *str, int n, FILE *stream)
从指定的流 stream 读取一行,并把它存储在 str 所指向的字符串内。当读取 (n-1) 个字符时,或者读取到换行符时,或者到达文件末尾时,它会停止,具体视情况而定。

  • str,指向一个字符数组的指针,该数组存储了要读取的字符串。
  • n,读取的最大字符数,通常是字符串数组长度
  • stream,指向 FILE 对象的指针,该 FILE 对象标识了要从中读取字符的流。
1
2
3
4
5
6
7
8
9
10
11
#include <stdio.h>

int main(){
FILE *fp = fopen("democ.txt","r+");
char str[20];
fgets(str,15,fp);
printf("%s",str);
fputs("Hello World!123456", fp);
return 0;
}
Hello World!12