本文目录一览:
用C语言设计一个超市购物打印系统
我自己设计了一个,你试试!操作结束后按Ctrl+z显示清单。使用方面有什么不懂可以问我!
#include "stdio.h"
typedef struct{
char node[100]; /*商品编号*/
char name[100];/*商品名称*/
float price;/*商品价格*/
} datatype;
typedef struct node{
datatype food[100];
int len;/*存放商品总数*/
}SPku;
datatype Input(void)
{datatype x;br/ scanf("%s %s %f",x.node,x.name,x.price);br/ printf("输入完毕!");br/return x;br/}
void create(SPku *r)
{ int i;
printf("\n输入商品总数:");
scanf("%d",r-len);
for(i=0;ir-len;i++)
{printf("\n输入商品编号 名称 价格:"); br/ r-food[i]=Input();br/ }
}
int strlen(char s[])
{int i;br/ for(i=0;is[i];i++);br/ return i;br/ }
int compare(char y[],char s[])
{int i;br/if(strlen(y)!=strlen(s))br/ return 0;br/elsebr/ for(i=0;istrlen(y);i++)br/ if(y[i]!=s[i])br/ return 0;br/ return 1;br/}
void Output(datatype f)
{
printf("\n%s %s %f",f.node,f.name,f.price);
}
int judge(SPku *r,char nd[])
{ int i;
for(i=0;ir-len;i++)
if(compare(r-food[i].node,nd))
{ Output(r-food[i]) ;
return i;
}
return 1000;
}
main()
{SPku r,n;br/ char nd[100];br/ int k,j,i,y=0;br/ printf("\n开始创建数据库...");br/ create(r);br/ printf("\n*********商品总单*********");br/ for(i=0;ir.len;i++)br/ Output(r.food[i]);br/ printf("\n**************************");br/while((j=getchar())!=EOF)br/ {br/ printf("\n扫描输入商品的编号:");br/ gets(nd);br/ printf("输入成功!");br/ k=judge(r,nd);br/ if(k==1000) br/ printf("\n无此商品...");br/ elsebr/ n.food[y++]=r.food[k];br/ }
printf("\n*********商品清单*********");
n.len=y;
for(i=0;in.len;i++)
Output(n.food[i]);
}
c语言的控制台打印时每次都出错
调用刷新缓冲区的函数。它是一个行缓冲函数,当你执行这个函数时,并不会立即打印数据。而是等printf的缓冲区满1024个字节才会打印出来。调用刷新缓冲区的函数即可。C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。
用C语言实现打印功能的具体代码是什么?
int __cdecl printf ( const char *format, ...)
{
va_list arglist;
int buffing;
int retval;
va_start(arglist, format);
_ASSERTE(format != NULL);//断言宏。如果输出格式字符串指针为空,则在DEBUG版下断 言,报告错误。
_lock_str2(1, stdout);
buffing = _stbuf(stdout);//stdout:指定输出到屏幕
retval = _output(stdout,format,arglist);
_ftbuf(buffing, stdout);
_unlock_str2(1, stdout);
return(retval);
}
以上为printf()的源代码,也就是你说的打印功能。
c语言 打印系统时间
#include stdio.h
#include time.h
int main()
{
time_t rawtime;
struct tm * timeinfo;
time ( rawtime );
timeinfo = localtime ( rawtime );
printf ( "当前系统时间: %s", asctime (timeinfo) );
return 0;
}
说明:
time_t // 时间类型(time.h 定义)
struct tm { // 时间结构,time.h 定义如下:
int tm_sec;
int tm_min;
int tm_hour;
int tm_mday;
int tm_mon;
int tm_year;
int tm_wday;
int tm_yday;
int tm_isdst;
}
time ( rawtime ); // 获取时间,以秒计,从1970年1月一日起算,存于rawtime
localtime ( rawtime ); //转为当地时间,tm 时间结构
asctime() // 转为标准ASCII时间格式:
//就是直接打印tm,tm_year 从1900年计算,所以要加1900,月tm_mon,从0计算,所以要加1
C语言打印系统时间,输出错误
dateblk-da_day=sys.wDay;
dateblk-da_mon=sys.wMonth;
dateblk-da_day=sys.wYear;/*你这里再次对da_day赋值了,但看你意思应该是对da_year赋值了,所以你对年根本 没有赋值 ,就是一个初始化值,但你又没有初始化,所以就是一个系统给的值,至于值是多少那就只有系统知道了*/
而且 printf("%d-%d-%",dateblk-da_year,dateblk-da_mon,dateblk-da_day);中掉了一个"%d-%d-%d"