P.xml

函数名: parsfnm 

功  能: 分析文件名 

用  法: char *parsfnm (char *cmdline, struct fcb *fcbptr, int option); 

程序例: 


#include <process.h>  #include <string.h>  #include <stdio.h>  #include <dos.h>  int main(void)  {     char line[80];     struct fcb blk;     /* get file name */     printf("Enter drive and file name (no path - ie. a:file.dat)\n");     gets(line);     /* put file name in fcb */     if (parsfnm(line, &blk1) == NULL)        printf("Error in parsfm call\n");     else        printf("Drive #%d  Name: %11s\n", blk.fcb_drive, blk.fcb_name);     return 0}       

函数名: peek 

功  能: 检查存储单元 

用  法: int peek(int segment, unsigned offset); 

程序例: 


#include <stdio.h>  #include <conio.h>  #include <dos.h>  int main(void)  {     int value = 0;     printf("The current status of your keyboard is:\n");     value = peek(0x0040, 0x0017);     if (value & 1)        printf("Right shift on\n");     else        printf("Right shift off\n");     if (value & 2)        printf("Left shift on\n");     else        printf("Left shift off\n");     if (value & 4)        printf("Control key on\n");     else        printf("Control key off\n");     if (value & 8)        printf("Alt key on\n");     else        printf("Alt key off\n");     if (value & 16)        printf("Scroll lock on\n");     else        printf("Scroll lock off\n");     if (value & 32)        printf("Num lock on\n");     else        printf("Num lock off\n");     if (value & 64)        printf("Caps lock on\n");     else        printf("Caps lock off\n");     return 0}       

函数名: peekb 

功  能: 检查存储单元 

用  法: char peekb (int segment, unsigned offset); 

程序例: 


#include <stdio.h>  #include <conio.h>  #include <dos.h>  int main(void)  {     int value = 0;     printf("The current status of your keyboard is:\n");     value = peekb(0x0040, 0x0017);     if (value & 1)        printf("Right shift on\n");     else        printf("Right shift off\n");     if (value & 2)        printf("Left shift on\n");     else        printf("Left shift off\n");     if (value & 4)        printf("Control key on\n");     else        printf("Control key off\n");     if (value & 8)        printf("Alt key on\n");     else        printf("Alt key off\n");     if (value & 16)        printf("Scroll lock on\n");     else        printf("Scroll lock off\n");     if (value & 32)        printf("Num lock on\n");     else        printf("Num lock off\n");     if (value & 64)        printf("Caps lock on\n");     else        printf("Caps lock off\n");     return 0}       

函数名: perror 

功  能: 系统错误信息 

用  法: void perror(char *string); 

程序例: 


#include <stdio.h>  int main(void)  {     FILE *fp;     fp = fopen("perror.dat", "r");     if (!fp)        perror("Unable to open file for reading");     return 0}       

函数名: pieslice 

功  能: 绘制并填充一个扇形 

用  法: void far pieslice(int x, int stanle, int endangle, int radius); 

程序例: 


#include <graphics.h>  #include <stdlib.h>  #include <stdio.h>  #include <conio.h>  int main(void)  {     /* request auto detection */     int gdriver = DETECT, gmodeerrorcode;     int midxmidy;     int stangle = 45, endangle = 135, radius = 100;     /* initialize graphics and local variables */     initgraph(&gdriver, &gmode, "");     /* read result of initialization */     errorcode = graphresult();     if (errorcode != grOk)  /* an error occurred */     {        printf("Graphics error: %s\n", grapherrormsg(errorcode));        printf("Press any key to halt:");        getch();        exit(1); /* terminate with an error code */     }     midx = getmaxx() / 2;     midy = getmaxy() / 2;     /* set fill style and draw a pie slice */     setfillstyle(EMPTY_FILL, getmaxcolor());     pieslice(midxmidy, stangle, endangle, radius);     /* clean up */     getch();     closegraph();     return 0}       

函数名: poke 

功  能: 存值到一个给定存储单元 

用  法: void poke(int segment, int offset, int value); 

程序例: 


#include <dos.h>  #include <conio.h>  int main(void)  {     clrscr();     cprintf("Make sure the scroll lock key is off and press any key\r\n");     getch();     poke(0x0000,0x0417,16);     cprintf("The scroll lock is now on\r\n");     return 0}       

函数名: pokeb 

功  能: 存值到一个给定存储单元 

用  法: void pokeb(int segment, int offset, char value); 

程序例: 


#include <dos.h>  #include <conio.h>  int main(void)  {     clrscr();     cprintf("Make sure the scroll lock key is off and press any key\r\n");     getch();     pokeb(0x0000,0x0417,16);     cprintf("The scroll lock is now on\r\n");     return 0}       

函数名: poly 

功  能: 根据参数产生一个多项式 

用  法: double poly(double x, int n, double c[]); 

程序例: 


#include <stdio.h>  #include <math.h>  /* polynomial:  x**3 - 2x**2 + 5x - 1 */  int main(void)  {     double array[] = { -1.05.0, -2.01.0 };     double result;     result = poly(2.03, array);     printf("The polynomial: x**3 - 2.0x**2 + 5x - 1 at 2.0 is %lf\n",             result);     return 0}       

函数名: pow 

功  能: 指数函数(x的y次方) 

用  法: double pow(double x, double y); 

程序例: 


#include <math.h>  #include <stdio.h>  int main(void)  {     double x = 2.0, y = 3.0;     printf("%lf raised to %lf is %lf\n", x, y, pow(x, y));     return 0}    

函数名: pow10 

功  能: 指数函数(10的p次方) 

用  法: double pow10(int p); 

程序例: 


#include <math.h>  #include <stdio.h>  int main(void)  {     double p = 3.0;     printf("Ten raised to %lf is %lf\n", p, pow10(p));     return 0}       

函数名: printf 

功  能: 产生格式化输出的函数 

用  法: int printf(char *format...); 

程序例: 


#include <stdio.h>  #include <string.h>  #define I 555  #define R 5.5  int main(void)  {     int i,j,k,l;     char buf[7];     char *prefix = buf;     char tp[20];     printf("prefix  6d      6o      8x        10.2e        "            "10.2f\n");     strcpy(prefix,"%");     for (i = 0i < 2i++)     {        for (= 0; j < 2; j++)           for (= 0; k < 2; k++)       for (= 0; l < 2; l++)              {                 if (i==0)  strcat(prefix,"-");                 if (j==0)  strcat(prefix,"+");                 if (k==0)  strcat(prefix,"#");                 if (l==0)  strcat(prefix,"0");                 printf("%5s |",prefix);                 strcpy(tp,prefix);                 strcat(tp,"6d |");                 printf(tp,I);                 strcpy(tp,"");                 strcpy(tp,prefix);                 strcat(tp,"6o |");                 printf(tp,I);                 strcpy(tp,"");                 strcpy(tp,prefix);                 strcat(tp,"8x |");                 printf(tp,I);                 strcpy(tp,"");                 strcpy(tp,prefix);          strcat(tp,"10.2e |");          printf(tp,R);          strcpy(tp,prefix);          strcat(tp,"10.2f |");          printf(tp,R);          printf("  \n");          strcpy(prefix,"%");       }         }     return 0}       

函数名: putc 

功  能: 输出一字符到指定流中 

用  法: int putc(int ch, FILE *stream); 

程序例: 


#include <stdio.h>  int main(void)  {     char msg[] = "Hello world\n";     int i = 0;     while (msg[i])        putc(msg[i++], stdout);     return 0}       

函数名: putch 

功  能: 输出字符到控制台 

用  法: int putch(int ch); 

程序例: 


#include <stdio.h>  #include <conio.h>  int main(void)  {     char ch = 0;     printf("Input a string:");     while ((ch != '\r'))     {        ch = getch();        putch(ch);     }     return 0}       

函数名: putchar 

功  能: 在stdout上输出字符 

用  法: int putchar(int ch); 

程序例: 


#include <stdio.h>  /* define some box-drawing characters */  #define LEFT_TOP  0xDA  #define RIGHT_TOP 0xBF  #define HORIZ     0xC4  #define VERT      0xB3  #define LEFT_BOT  0xC0  #define RIGHT_BOT 0xD9  int main(void)  {     char i, j;     /* draw the top of the box */     putchar(LEFT_TOP);     for (i=0i<10i++)        putchar(HORIZ);     putchar(RIGHT_TOP);     putchar('\n');     /* draw the middle */     for (i=0i<4i++)     {        putchar(VERT);        for (j=0; j<10; j++)           putchar(' ');        putchar(VERT);        putchar('\n');     }     /* draw the bottom */     putchar(LEFT_BOT);     for (i=0i<10i++)        putchar(HORIZ);     putchar(RIGHT_BOT);     putchar('\n');     return 0}       

函数名: putenv 

功  能: 把字符串加到当前环境中 

用  法: int putenv(char *envvar); 

程序例: 


#include <stdio.h>  #include <stdlib.h>  #include <alloc.h>  #include <string.h>  #include <dos.h>  int main(void)  {     char *path, *ptr;     int i = 0;     /* get the current path environment */     ptr = getenv("PATH");     /* set up new path */     path = malloc(strlen(ptr)+15);     strcpy(path,"PATH=");     strcat(path,ptr);     strcat(path,";c:\\temp");     /* replace the current path and display current environment */     putenv(path);     while (environ[i])         printf("%s\n",environ[i++]);     return 0}       

函数名: putimage 

功  能: 在屏幕上输出一个位图 

用  法: void far putimage(int x, int y, void far *bitmap, int op); 

程序例: 


#include <graphics.h>  #include <stdlib.h>  #include <stdio.h>  #include <conio.h>  #define ARROW_SIZE 10  void draw_arrow(int xint y)int main(void)  {     /* request autodetection */     int gdriver = DETECT, gmodeerrorcode;     void *arrow;     int x, y, maxx;     unsigned int size;     /* initialize graphics and local variables */     initgraph(&gdriver, &gmode, "");     /* read result of initialization */     errorcode = graphresult();     if (errorcode != grOk)  /* an error occurred */     {        printf("Graphics error: %s\n", grapherrormsg(errorcode));        printf("Press any key to halt:");        getch();        exit(1); /* terminate with an error code */     }     maxx = getmaxx();     x = 0;     y = getmaxy() / 2;     /* draw the image to be grabbed */     draw_arrow(x, y);     /* calculate the size of the image */     size = imagesize(x, y-ARROW_SIZE, x+(4*ARROW_SIZE), y+ARROW_SIZE);     /* allocate memory to hold the image */     arrow = malloc(size);     /* grab the image */     getimage(x, y-ARROW_SIZE, x+(4*ARROW_SIZE), y+ARROW_SIZE, arrow);     /* repeat until a key is pressed */     while (!kbhit())     {        /* erase old image */        putimage(x, y-ARROW_SIZE, arrow, XOR_PUT);        x += ARROW_SIZE;        if (x >= maxx)            x = 0;        /* plot new image */        putimage(x, y-ARROW_SIZE, arrow, XOR_PUT);     }     /* clean up */     free(arrow);     closegraph();     return 0}  void draw_arrow(int xint y)  {     /* draw an arrow on the screen */     moveto(x, y);     linerel(4*ARROW_SIZE, 0);     linerel(-2*ARROW_SIZE, -1*ARROW_SIZE);     linerel(02*ARROW_SIZE);     linerel(2*ARROW_SIZE, -1*ARROW_SIZE)}       

函数名: putpixel 

功  能: 在指定位置画一像素 

用  法: void far putpixel (int x, int y, int pixelcolor); 

程序例: 


#include <graphics.h>  #include <stdlib.h>  #include <stdio.h>  #include <conio.h>  #include <dos.h>  #define PIXEL_COUNT 1000  #define DELAY_TIME  100  /* in milliseconds */  int main(void)  {     /* request autodetection */     int gdriver = DETECT, gmodeerrorcode;     int ix, y, color, maxx, maxy, maxcolor, seed;     /* initialize graphics and local variables */     initgraph(&gdriver, &gmode, "");     /* read result of initialization */     errorcode = graphresult();     if (errorcode != grOk)  /* an error occurred */     {        printf("Graphics error: %s\n", grapherrormsg(errorcode));        printf("Press any key to halt:");        getch();        exit(1); /* terminate with an error code */     }     maxx = getmaxx() + 1;     maxy = getmaxy() + 1;     maxcolor = getmaxcolor() + 1;     while (!kbhit())     {        /* seed the random number generator */        seed = random(32767);        srand(seed);        for (i=0i<PIXEL_COUNT; i++)        {    x = random(maxx);           y = random(maxy);           color = random(maxcolor);           putpixel(x, y, color);        }        delay(DELAY_TIME);        srand(seed);        for (i=0i<PIXEL_COUNT; i++)        {    x = random(maxx);    y = random(maxy);    color = random(maxcolor);    if (color == getpixel(x, y))       putpixel(x, y, 0);        }     }     /* clean up */     getch();     closegraph();     return 0}       

函数名: puts 

功  能: 送一字符串到流中 

用  法: int puts(char *string); 

程序例: 


#include <stdio.h>  int main(void)  {     char string[] = "This is an example output string\n";     puts(string);     return 0}       

函数名: puttext 

功  能: 将文本从存储区拷贝到屏幕 

用  法: int puttext(int left, int top, int right, int bottom, void *source); 

程序例: 


#include <conio.h>  int main(void)  {     char buffer[512];     /* put some text to the console */     clrscr();     gotoxy(2012);     cprintf("This is a test.  Press any key to continue ...");     getch();     /* grab screen contents */     gettext(20123621,buffer);     clrscr();     /* put selected characters back to the screen */     gotoxy(2012);     puttext(20123621buffer);     getch();     return 0}       

函数名: putw 

功  能: 把一字符或字送到流中 

用  法: int putw(int w, FILE *stream); 

程序例: 


#include <stdio.h>  #include <stdlib.h>  #define FNAME "test.$$$"  int main(void)  {     FILE *fp;     int word;     /* place the word in a file */     fp = fopen(FNAME, "wb");     if (fp == NULL)     {        printf("Error opening file %s\n", FNAME);        exit(1);     }     word = 94;     putw(word,fp);     if (ferror(fp))         printf("Error writing to file\n");     else         printf("Successful write\n");     fclose(fp);     /* reopen the file */     fp = fopen(FNAME, "rb");     if (fp == NULL)     {        printf("Error opening file %s\n", FNAME);        exit(1);     }     /* extract the word */     word = getw(fp);     if (ferror(fp))         printf("Error reading file\n");     else         printf("Successful readword = %d\n", word);     /* clean up */     fclose(fp);     unlink(FNAME);     return 0}               



本文使用 书画小说软件 发布,内容与软件无关,书画小说软件 更惬意的读、更舒心的写、更轻松的发布。

 

转载于:https://www.cnblogs.com/shuilan0066/p/4033028.html

### SSM框架中的配置文件及其关系 #### 1. **web.xml** `web.xml` 是 Java Web 应用程序的部署描述符,用于定义应用程序的整体结构和初始化参数。它是整个项目的入口点。 - 定义 `DispatcherServlet` 的映射路径,负责拦截所有 HTTP 请求并将它们转发到 Spring MVC 控制器。 - 配置监听器(Listener),例如 `ContextLoaderListener`,用于加载全局上下文 `applicationContext.xml` 或其他类似的 XML 文件。 - 设置过滤器(Filter),如字符编码过滤器,确保请求和响应的编码一致性。 ```xml <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring/applicationContext.xml</param-value> </context-param> <servlet> <servlet-name>dispatcher</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring/spring-mvc.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>dispatcher</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> ``` 此部分通过 `ContextLoaderListener` 初始化全局上下文,并由 `DispatcherServlet` 加载特定于 Spring MVC 的配置[^1]。 --- #### 2. **spring-mybatis.xml** 该文件主要用于 MyBatis 和 Spring 的集成,配置数据源、事务管理器以及 SQL Session 工厂。 - 数据源 (`DataSource`) 使用第三方库(如 Druid、C3P0)实现数据库连接池。 - 配置事务管理器 (`TransactionManager`) 来管理事务。 - 创建 `SqlSessionFactory` 并将其与 MyBatis 映射文件关联。 ```xml <!-- 数据源 --> <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"> <property name="driverClassName" value="${jdbc.driver}" /> <property name="url" value="${jdbc.url}" /> <property name="username" value="${jdbc.username}" /> <property name="password" value="${jdbc.password}" /> </bean> <!-- 事务管理器 --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource" /> </bean> <!-- SqlSessionFactory --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <property name="mapperLocations" value="classpath:mapper/*.xml" /> </bean> <!-- Mapper 扫描 --> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.example.mapper" /> </bean> ``` 此部分实现了 MyBatis 和 Spring 的无缝集成,使得 DAO 层可以通过注解或接口方式访问数据库[^2]。 --- #### 3. **spring-mvc.xml** 这是 Spring MVC 的核心配置文件,主要关注前端控制器的行为和视图解析。 - 组件扫描仅限于 Controller 类型的 Bean。 - 配置视图解析器以指定 JSP 页面的位置和扩展名。 - 启用对静态资源的支持以及其他高级功能。 ```xml <context:component-scan base-package="com.ssm.controller"> <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/> </context:component-scan> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/views/" /> <property name="suffix" value=".jsp" /> </bean> <mvc:default-servlet-handler/> <mvc:annotation-driven/> ``` 这部分专注于处理用户的请求并返回相应的视图[^1]。 --- #### 4. **mybatis-config.xml** MyBatis 的核心配置文件,通常包含通用设置和插件声明。 - 配置缓存机制。 - 指定日志记录工具。 - 添加自定义类型处理器或其他扩展组件。 ```xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <!-- 缓存设置 --> <settings> <setting name="cacheEnabled" value="true"/> <setting name="lazyLoadingEnabled" value="true"/> </settings> <!-- 日志记录 --> <typeAliases> <package name="com.example.model"/> </typeAliases> <!-- 插件 --> <plugins> <plugin interceptor="com.github.pagehelper.PageInterceptor"/> </plugins> </configuration> ``` 此文件提供了 MyBatis 运行所需的底层支持,而具体的 SQL 映射则交由单独的 Mapper 文件完成[^3]。 --- #### 配置关系总结 1. **web.xml** 负责启动容器并加载全局上下文和 DispatcherServlet。 2. **spring-mybatis.xml** 提供了持久层所需的数据源、事务管理和会话工厂。 3. **spring-mvc.xml** 处理业务逻辑和视图渲染。 4. **mybatis-config.xml** 则作为 MyBatis 的基础配置文件,补充了额外的功能选项。 这些文件相互协作,共同构建了一个完整的 SSM 架构应用。 --- #### 常见问题及解决方法 1. 如果服务无法找到对应的 Bean,则需确认是否正确注册了相关组件扫描范围或手动定义了 Bean 实例[^4]。 2. 当遇到数据库操作异常时,请检查 `sqlSessionFactory` 是否成功加载了正确的 Mapper 文件位置。 3. 若页面显示错误提示未找到视图名称,请验证视图解析器前缀和后缀是否匹配实际目录结构。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值