C语言库函数(八)

来源:互联网 发布:python csv模块 array 编辑:程序博客网 时间:2024/04/28 06:56

函数名: ultoa 
功  能: 转换一个无符号长整型数为字符串 
用  法: char *ultoa(unsigned long value, char *string, int radix); 
程序例: 

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

int main( void ) 

   unsigned long lnumber = 3123456789L; 
   char string[25]; 

   ultoa(lnumber,string,10); 
   printf("string = %s  unsigned long = %lu/n",string,lnumber); 

   return 0; 

  
函数名: vfprintf 
功  能: 送格式化输出到一流中 
用  法: int vfprintf(FILE *stream, char *format, va_list param); 
程序例: 

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

FILE *fp; 

int vfpf(char *fmt, ...) 

   va_list argptr; 
   int cnt; 

   va_start(argptr, fmt); 
   cnt = vfprintf(fp, fmt, argptr); 
   va_end(argptr); 

   return(cnt); 

int main(void) 

   int inumber = 30; 
   float fnumber = 90.0; 
   char string[4] = "abc"; 

   fp = tmpfile(); 
   if (fp == NULL) 
   { 
      perror("tmpfile() call"); 
      exit(1); 
   } 

   vfpf("%d %f %s", inumber, fnumber, string); 
   rewind(fp); 
   fscanf(fp,"%d %f %s", &inumber, &fnumber, string); 
   printf("%d %f %s/n", inumber, fnumber, string); 
   fclose(fp); 

   return 0; 

  
  
  

函数名: vfscanf 
功  能: 从流中执行格式化输入 
用  法: int vfscanf(FILE *stream, char *format, va_list param); 
程序例: 

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

FILE *fp; 

int vfsf(char *fmt, ...) 

   va_list  argptr; 
   int cnt; 

   va_start(argptr, fmt); 
   cnt = vfscanf(fp, fmt, argptr); 
   va_end(argptr); 

   return(cnt); 

int main(void) 

   int inumber = 30; 
   float fnumber = 90.0; 
         char string[4] = "abc"; 

   fp = tmpfile(); 
   if (fp == NULL) 
   { 
      perror("tmpfile() call"); 
      exit(1); 
   } 
   fprintf(fp,"%d %f %s/n",inumber,fnumber,string); 
   rewind(fp); 

   vfsf("%d %f %s",&inumber,&fnumber,string); 
   printf("%d %f %s/n",inumber,fnumber,string); 
   fclose(fp); 

   return 0; 

  
  

函数名: vprintf 
功  能: 送格式化输出到stdout中 
用  法: int vprintf(char *format, va_list param); 
程序例: 

#include <stdio.h> 
#include <stdarg.h> 

int vpf(char *fmt, ...) 

   va_list argptr; 
   int cnt; 

   va_start(argptr, format); 
   cnt = vprintf(fmt, argptr); 
   va_end(argptr); 

   return(cnt); 

int main(void) 

   int inumber = 30; 
   float fnumber = 90.0; 
   char *string = "abc"; 

   vpf("%d %f %s/n",inumber,fnumber,string); 

   return 0; 

  
  

函数名: vscanf 
功  能: 从stdin中执行格式化输入 
用  法: int vscanf(char *format, va_list param); 
程序例: 

#include <stdio.h> 
#include <conio.h> 
#include <stdarg.h> 

int vscnf(char *fmt, ...) 

   va_list argptr; 
   int cnt; 

   printf("Enter an integer, a float,  and a string (e.g. i,f,s,)/n"); 
   va_start(argptr, fmt); 
   cnt = vscanf(fmt, argptr); 
   va_end(argptr); 

   return(cnt); 

int main(void) 

   int inumber; 
   float fnumber; 
   char string[80]; 

   vscnf("%d, %f, %s", &inumber, &fnumber, string); 
   printf("%d %f %s/n", inumber, fnumber, string); 

   return 0; 

  
  
  

函数名: vsprintf 
功  能: 送格式化输出到串中 
用  法: int vsprintf(char *string, char *format, va_list param); 
程序例: 

#include <stdio.h> 
#include <conio.h> 
#include <stdarg.h> 

char buffer[80]; 

int vspf(char *fmt, ...) 

   va_list argptr; 
   int cnt; 

   va_start(argptr, fmt); 
   cnt = vsprintf(buffer, fmt, argptr); 
   va_end(argptr); 

   return(cnt); 

int main(void) 

   int inumber = 30; 
   float fnumber = 90.0; 
   char string[4] = "abc"; 

   vspf("%d %f %s", inumber, fnumber, string); 
   printf("%s/n", buffer); 
   return 0; 

  
  
  

函数名: vsscanf 
功  能: 从流中执行格式化输入 
用  法: int vsscanf(char *s, char *format, va_list param); 
程序例: 

#include <stdio.h> 
#include <conio.h> 
#include <stdarg.h> 

char buffer[80] = "30 90.0 abc"; 

int vssf(char *fmt, ...) 

   va_list  argptr; 
   int cnt; 

   fflush(stdin); 

   va_start(argptr, fmt); 
   cnt = vsscanf(buffer, fmt, argptr); 
   va_end(argptr); 

   return(cnt); 

int main(void) 

   int inumber; 
   float fnumber; 
   char string[80]; 

   vssf("%d %f %s", &inumber, &fnumber, string); 
   printf("%d %f %s/n", inumber, fnumber, string); 
   return 0; 

   
  

函数名: ungetc 
功  能: 把一个字符退回到输入流中 
用  法: int ungetc(char c, FILE *stream); 
程序例: 

#include <stdio.h> 
#include <ctype.h> 

int main( void ) 

   int i=0; 
   char ch; 

   puts("Input an integer followed by a char:"); 

   /* read chars until non digit or EOF */ 
   while((ch = getchar()) != EOF && isdigit(ch)) 
      i = 10 * i + ch - 48; /* convert ASCII into int value */ 

   /* if non digit char was read, push it back into input buffer */ 
   if (ch != EOF) 
      ungetc(ch, stdin); 

   printf("i = %d, next char in buffer = %c/n", i, getchar()); 
   return 0; 

  
  
  

函数名: ungetch 
功  能: 把一个字符退回到键盘缓冲区中 
用  法: int ungetch(int c); 
程序例: 

#include <stdio.h> 
#include <ctype.h> 
#include <conio.h> 

int main( void ) 

   int i=0; 
   char ch; 

   puts("Input an integer followed by a char:"); 

   /* read chars until non digit or EOF */ 
   while((ch = getche()) != EOF && isdigit(ch)) 
      i = 10 * i + ch - 48; /* convert ASCII into int value */ 

   /* if non digit char was read, push it back into input buffer */ 
   if (ch != EOF) 
      ungetch(ch); 

   printf("/n/ni = %d, next char in buffer = %c/n", i, getch()); 
   return 0; 

  
  
  

函数名: unixtodos 
功  能: 把日期和时间转换成DOS格式 
用  法: void unixtodos(long utime, struct date *dateptr, 
   struct time *timeptr); 
程序例: 

#include <stdio.h> 
#include <dos.h> 

char *month[] = {"---", "Jan", "Feb", "Mar", "Apr", "May", "Jun", 
                 "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"}; 

#define SECONDS_PER_DAY 86400L  /* the number of seconds in one day */ 

struct date dt; 
struct time tm; 

int main(void) 

   unsigned long val; 

/* get today's date and time */ 
   getdate(&dt); 
   gettime(&tm); 
   printf("today is %d %s %d/n", dt.da_day, month[dt.da_mon], dt.da_year); 

/* convert date and time to unix format (number of seconds since Jan 1, 1970 */ 
   val = dostounix(&dt, &tm); 
/* subtract 42 days worth of seconds */ 
   val -= (SECONDS_PER_DAY * 42); 

/* convert back to dos time and date */ 
   unixtodos(val, &dt, &tm); 
   printf("42 days ago it was %d %s %d/n", 
        dt.da_day, month[dt.da_mon], dt.da_year); 
   return 0; 

  
  
  

函数名: unlink 
功  能: 删掉一个文件 
用  法: int unlink(char *filename); 
程序例: 

#include <stdio.h> 
#include <io.h> 

int main(void) 

   FILE *fp = fopen("junk.jnk","w"); 
   int status; 

   fprintf(fp,"junk"); 

   status = access("junk.jnk",0); 
   if (status == 0) 
      printf("File exists/n"); 
   else 
      printf("File doesn't exist/n"); 

   fclose(fp); 
   unlink("junk.jnk"); 
   status = access("junk.jnk",0); 
   if (status == 0) 
      printf("File exists/n"); 
   else 
      printf("File doesn't exist/n"); 
  

   return 0; 

  
  
  

函数名: unlock 
功  能: 解除文件共享锁 
用  法: int unlock(int handle, long offset, long length); 
程序例: 

#include <io.h> 
#include <fcntl.h> 
#include <sys/stat.h> 
#include <process.h> 
#include <share.h> 
#include <stdio.h> 

int main(void) 

   int handle, status; 
   long length; 

   handle = sopen("c://autoexec.bat",O_RDONLY,SH_DENYNO,S_IREAD); 

   if (handle < 0) 
   { 
       printf("sopen failed/n"); 
       exit(1); 
   } 

   length = filelength(handle); 
   status = lock(handle,0L,length/2); 

   if (status == 0) 
      printf("lock succeeded/n"); 
   else 
      printf("lock failed/n"); 

   status = unlock(handle,0L,length/2); 

   if (status == 0) 
      printf("unlock succeeded/n"); 
   else 
      printf("unlock failed/n"); 

   close(handle); 
   return 0; 

原创粉丝点击