C/C++
hanxuedog
这个作者很懒,什么都没留下…
展开
-
用C写的模拟掷骰子程序
整理自:《C Primer Plus》第五版 此程序包含三个文件: diceroll.cpp :包含两个函数 rollem(int)和roll_n_dice(int,int) diceroll.h :头文件 manydice.cpp :主函数所在文件 diceroll.cpp文件: //掷骰子的模拟程序#include "diceroll.h"#i...2011-12-12 16:47:48 · 1136 阅读 · 0 评论 -
C语言中对scanf输入非法字符的检查和处理
在C中scanf()函数返回成功读入的变量的个数。如果它没有读取任何项目(输入非法字符,例如:希望得到数字,而用户却输入的是字符),scanf()返回值为0.当检测到“文件结尾”是,会返回EOF(EOF是在文件stdio.h中定义的特殊值,一般,#define指令把EOF的值定义为-1).利用scanf()以上的性质,可对输入值进行检验,代码如下: #include<std...原创 2011-12-06 21:57:12 · 9712 阅读 · 3 评论 -
C语言字符的输入输出原理
例: #include<stdio.h>int main(void){ char ch; while((ch = getchar()) != '#') putchar(); return 0;} 在这个程序中,运行情况如下: hello,world [Enter] -->输入"h...2011-12-07 19:41:21 · 770 阅读 · 0 评论 -
C输入输出的一个例子(不受Enter键影响)
int guess = 1; char yn; printf("enter a number:"); printf("Uh....is %d?\n",guess); while((yn= getchar()) != 'y') { if( isalpha(yn)) { printf("well,then ,is i...2011-12-07 19:44:37 · 180 阅读 · 0 评论 -
C中字符串的几种定义方法及说明
在C中定义字符串有下列几种形式:字符串常量,char数组,char指针1.字符串常量 即:位于一对双括号中的任何字符。双引号里的字符加上编译器自动提供的结束标志\0字符,作为一个字符串存储在内存中。如:printf("%s","hello"); //"hello" 如果字符串文字中间没有间隔或间隔的是空格符,ANSI C 会将其串联起来。例: char gr...2011-12-08 20:08:03 · 2172 阅读 · 0 评论 -
C语言中对sizeof()和strlen()的说明
1.sizeof函数sizeof函数返回表达式所占的内存空间(以字节为单位) 例:#include<stdio.h>#define MONTHES 12int main(void){ int days[MONTHES] = {31,28,31,30,30,30}; int len = sizeof(days); pri...2011-12-09 10:01:49 · 207 阅读 · 0 评论 -
C中有关数组的说明
下面介绍一下关于数组的一些说明: 在数组声明时必须定义数组长度,但也可利用空的方括弧[]对数组初始化,使编译器自动根据列表中的值自动计算数组长度。 例: int array[12]; int array[]={1,2} // 但是若数组声明的方式是这样的: ...2011-12-09 11:10:45 · 160 阅读 · 0 评论 -
C中关于数组参数的传递
编写一个对数组进行操作的函数,目的是返回数组内所用元素的和。 第一种形式:函数原型为int sum(int ar[],int n) #include<stdio.h>#define SIZE 4int sum(int ar[],int n);int main(int argc,char *argv[]){ int arrays[SIZE] =...2011-12-09 11:43:48 · 183 阅读 · 0 评论 -
关于*与++的优先级
C中一元运算符*和++具有相等的优先级,但它们在结合时是从右向左的。例:#include<stdio.h>int data[2] = {100,200};int moredata[2] = {300,400};int main(void){ int *p1,*p2,*p3; p1 = p2 = data; p3 = moredata...2011-12-11 16:53:00 · 509 阅读 · 0 评论 -
指针的基本操作以及关于指针的注意事项
一. 指针的基本操作有:赋值(assignment),求值(value-finding)或取值(dereferencing),区指针地址,将一个整数家给指针,增加指针的值,从指针中减去一个整数,减小指针的值,求差值(Differencing),比较。下面以一个例子进行说明: #include<stdio.h>int main(void){ int *pt...2011-12-11 17:42:00 · 317 阅读 · 0 评论 -
关于socket编程中基本函数介绍
源自:http://blog.sina.com.cn/s/blog_a459dcf5010155nf.html本文针对SOCKET编程中要用到的函数进行一个比较系统的介绍。说明:在使用Socket时,需要在lib库中使用ws2_32.lib; 1、WSAStartup:初始化套接字环境,本函数必须是应用程序或DLL调用的第一个Windows Sockets函数.它允许应用程序...原创 2012-11-03 13:57:01 · 296 阅读 · 0 评论 -
C中结构体
把结构体保存到文件中,用fwrite()函数:fwrite(&primer,sizeof(struct book),1,pbooks);其中,primer为结构体book变量,sizeof(struct book)是结构体book的大小,1表示只需复制一块。 fread()函数将把一个结构体大小的一块数据从文件复制到&primer指向的位置。如:fread(&a...原创 2013-01-09 15:47:28 · 161 阅读 · 0 评论 -
vs2008编写C程序时,控制台console一闪而过的问题
在vs2008中编写c控制台程序,运行完后经常一闪而过,以下是结合网上内容及自己体会整理的解决办法:方法1: 运行时,用Ctrl+F5 ,就会在程序结束时显示“请按任意键继续. . .” (原理我也不知道)方法2: 在程序的结束位置添加 //fflush(stdin);//清除输入缓冲区的数据, (有的时候需要这一语句,详情...2011-12-06 21:45:54 · 241 阅读 · 0 评论 -
C打印系统整型,字符型等所占位数
C语言代码: #include<stdio.h>int main(void){ printf("Type int has a size of %u bytes.\n",sizeof(int)); printf("Type char has a size of %u bytes.\n",sizeof(char)); printf("Ty...2011-12-06 10:57:31 · 242 阅读 · 0 评论 -
vs2008下vc的库函数及头文件存放位置
在写C/C++程序时总会在开头包含一些头文件,如:#include<stdio.h>,那么这些库文件,头文件在哪呢?库文件:在vs2008安装目录中可以找到,如:我vs2008安装在D:\Program Files中,那么文件的位置是: D:\Program Files\Microsoft Visual Studio 9.0\VC\crt\src 头文件:vs2008安...2011-12-13 22:14:35 · 1327 阅读 · 0 评论 -
C中目标代码文件,可执行文件和库
C编程的基本策略是使用程序将源代码文件转换为可执行文件,此文件包含可运行的机器语言代码。 C分两步完成这一工作:编译和链接。编译器将源代码转换为中间代码,连接器将此中间代码与其他代码相结合来生成可执行文件。C使用编译和链接生成可执行文件的方法便于程序的模块化。您可以分别编译各个模块,然后使用连接器将编译过的模块结合起来。这样,如果需要改变一个模块,则不必重新编译所有其他模块。同时,连接...2011-12-14 10:19:27 · 288 阅读 · 0 评论 -
C语言格式化输出系统时间
源自:http://blog.csdn.net/jiadelin/article/details/2916329 部分代码有改动我们可以使用strftime()函数将时间格式化为我们想要的格式。它的原型如下:size_t strftime( char *strDest, size_t maxsize, const char *format, const st...原创 2011-12-14 17:04:34 · 1209 阅读 · 0 评论 -
C中常用的类型转换函数
源自:http://hi.baidu.com/hao_%BF%AA%D0%C4/blog/item/8d10ded72f036bd4a144df30.html1、atof(将字符串转换成浮点型数)相关函数 atoi,atol,strtod,strtol,strtoul表头文件 #include <stdlib.h>定义函数 double atof(const...原创 2011-12-14 17:34:30 · 188 阅读 · 0 评论 -
C中各数据类型取值范围
1.标准头文件<limits.h>中包含了定义char int short long类型取值的最大值和最小值用常量表示(例如SCHAR_MIN = -128,INT_MAX = 2147483647),<float.h>文件中包含了float类型的大小限制信息。 2.另外,我们可以用 printf("%d",sizeof(int)); 语句打印...2011-12-15 19:31:17 · 309 阅读 · 0 评论 -
C中转义序列及其含义
转义序列: 序列 意义 \a 报警(ANSI C) \b 退格 \f 走纸 \n 换行 \r 回车 \t...2011-12-15 20:27:14 · 291 阅读 · 0 评论 -
C中printf()和scanf()函数说明
下面是对printf()和scanf()函数的说明: 一.printf()函数 1.参数传递 参数传递的机制随实现不同而不同,下面是参数传递在系统中的工作原理.函数调用如下: printf("%ld %ld %ld %ld",n1,n2,n3,n4); //设n1为float型 n2为double型 n3,n4为long型 该调用告诉...2011-12-16 19:58:05 · 290 阅读 · 0 评论 -
C中double类型数据的输入和输出
double a; scanf("%f",&a); //应用scanf("%lf",&a);执行上面语句时,发现double类型的输入不能使用%f进行输入,得用%lf才能正常得到a的值。而在输出double类型时却可以用%f,这是因为printf("%f",a);在执行时C自动将float型的参数转换成double型。 故double型的输入输...2011-12-19 10:04:51 · 5659 阅读 · 1 评论 -
C中<ctype.h>库
标准库<ctype.h>1 字符测试函数1> 函数原型均为int isxxxx(int)2> 参数为int, 任何实参均被提升成整型3> 只能正确处理处于[0, 127]之间的值isalpha 'A'~'Z', 'a'~'z'isdigit '0'~'9'isxdigit '0'~'9', 'A'~'F', 'a'~'f'isal...原创 2011-12-19 20:21:31 · 115 阅读 · 0 评论 -
指针和多维数组
摘自:《C primer plus》 指针和多位数组 假设声明如下: int zippo[4][2]; 数组名zippo同时也是数组首元素的地址。在本例中能够,zippo的首元素本身又是包含两个int的数组,因此zippo也是包含两个int 的数组的地址。下面从指针属性进一步分析:意味zippo是数组首元素的地址,所以zippo的值和&zippo[0]相同...2011-12-26 10:03:41 · 99 阅读 · 0 评论 -
C中字符串的输入输出及相关函数
//本节内容摘自对Stephen Prata的《C Primer Plus》第五版 一.字符串的输入 如果想把一个字符串读到程序中,必须首先保留存储字符串的空间,然后使用输入函数来获取这个字符串。 要想读入字符串,必须分配足够大的存储区来存放希望读入的字符串。 char *name; scanf("%s",name);这可能会通过编译器...2011-12-27 21:59:47 · 168 阅读 · 0 评论 -
C中需要注意的小问题
1.在用scanf()函数读入double型数值时要用%lf的形式,不能用%f 例如: double i; scanf("%lf", &i); // 不能用scanf("%f", &i)这种形式...2012-09-27 08:59:23 · 87 阅读 · 0 评论