- 浏览: 283106 次
- 性别:
最新评论
文章列表
下面的一些程序要求输入以EOF终止。如果您的操作系统难以使用或不能使用重定向,则使用一些其他的判断来终止输入,例如读取&字符。
1.设计一个程序,统计从输入到文件结尾为止的字符数。
#include<stdio.h>
int main(void)
{
int count = 0 ;
printf("input characters:\n");
while(getchar() != EOF)
count++;
printf("there are%d characters\n",count ...
C中<ctype.h>库
- 博客分类:
- C/C++
标准库<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'isalnum isalpha || isdigit
islower 'a'~'z'isupper 'A'~'Z'
isspace9 '\t' (tab: 水平制表位)10 '\n' (li ...
C中double类型数据的输入和输出
- 博客分类:
- C/C++
double a;
scanf("%f",&a); //应用scanf("%lf",&a);
执行上面语句时,发现double类型的输入不能使用%f进行输入,得用%lf才能正常得到a的值。
而在输出double类型时却可以用%f,这是因为printf("%f",a);在执行时C自动将float型的参数转换成double型。
故double型的输入输出形式如下:
double a;
scanf("%lf",&a);
printf("%f&q ...
C中printf()和scanf()函数说明
- 博客分类:
- C/C++
下面是对printf()和scanf()函数的说明:
一.printf()函数
1.参数传递
参数传递的机制随实现不同而不同,下面是参数传递在系统中的工作原理.函数调用如下:
printf("%ld %ld %ld %ld",n1,n2,n3,n4);
//设n1为float型 n2为double型 n3,n4为long型
该调用告诉计算机把变量n1,n2,n3,n4的值传递给计算机,计算机把它们放置到被称为对战(stack)的一块内存区域中来实现。计算机根据变量的类型而非转换说明符(%ld)把这些值放置到堆栈中 ...
函数名: 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;
}
C中转义序列及其含义
- 博客分类:
- C/C++
转义序列:
序列
意义
\a
报警(ANSI C)
\b
退格
\f
走纸
\n
换行
\r
回车
\t
水平制表
\v
垂直制表
\\
反斜杠(\)
\'
单引号( ' )
\"
双引号( ...
C中各数据类型取值范围
- 博客分类:
- C/C++
1.标准头文件<limits.h>中包含了定义char int short long类型取值的最大值和最小值用常量表示(例如SCHAR_MIN = -128,INT_MAX = 2147483647),<float.h>文件中包含了float类型的大小限制信息。
2.另外,我们可以用
printf("%d",sizeof(int));
语句打印一个数据类型在内存中占的字节数。
我的系统是win7 32位操作系统,编程环境是vs2008,在这个环境中
char型 1字节 -128 ~ 127 ( ...
C 把年龄转换为天数
- 博客分类:
- C/C++小程序
计算从出生年到现在的天数(假设出生日期是*年1月1日)
代码如下:
AgeToDay.cpp
/*AgeToDay.cpp -- 把自己的年龄转换成天数*/
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
#define RUNYEAR 366 //闰年天数
#define PINGY ...
C中常用的类型转换函数
- 博客分类:
- C/C++
源自:http://hi.baidu.com/hao_%BF%AA%D0%C4/blog/item/8d10ded72f036bd4a144df30.html
1、atof(将字符串转换成浮点型数)相关函数 atoi,atol,strtod,strtol,strtoul表头文件 #include <stdlib.h>定义函数 double atof(const char *nptr);函数说明 atof()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时('')才结束转换,并 将结果返回。 ...
C语言格式化输出系统时间
- 博客分类:
- C/C++
源自:http://blog.csdn.net/jiadelin/article/details/2916329 部分代码有改动
我们可以使用strftime()函数将时间格式化为我们想要的格式。它的原型如下:size_t strftime( char *strDest, size_t maxsize, const char *format,
C中目标代码文件,可执行文件和库
- 博客分类:
- C/C++
C编程的基本策略是使用程序将源代码文件转换为可执行文件,此文件包含可运行的机器语言代码。 C分两步完成这一工作:编译和链接。编译器将源代码转换为中间代码,连接器将此中间代码与其他代码相结合来生成可执行文件。C使用编译和链接生成可执行文件的方法便于程序的模块化。您可以分别编译各个模块,然后使用连接器将编译过的模块结合起来。这样,如果需要改变一个模块,则不必重新编译所有其他模块。同时,连接器将程序与预编译的库代码结合起来。
中间文件的形式有多种选择。最一般的选择,是将源代码转换为机器语言代码,将结果放置在目标代码文件中。虽然目标文件包含机器语言代码,但该文件还不能运行。目标 ...
vs2008下vc的库函数及头文件存放位置
- 博客分类:
- C/C++
在写C/C++程序时总会在开头包含一些头文件,如:#include<stdio.h>,那么这些库文件,头文件在哪呢?
库文件:在vs2008安装目录中可以找到,如:我vs2008安装在D:\Program Files中,那么文件的位置是:
D:\Program Files\Microsoft Visual Studio 9.0\VC\crt\src
头文件:vs2008安装目录的一个include文件夹中,我的位置是:
D:\Program Files\Microsoft Visual Studio 9.0\VC\include
用C写的模拟掷骰子程序
- 博客分类:
- C/C++
整理自:《C Primer Plus》第五版
此程序包含三个文件:
diceroll.cpp :包含两个函数 rollem(int)和roll_n_dice(int,int)
diceroll.h :头文件
manydice.cpp :主函数所在文件
diceroll.cpp文件:
//掷骰子的模拟程序
#include "diceroll.h"
#include<stdio.h>
#include<stdlib.h> //为rand()函数提供类库
int roll_count = 0; //外 ...
源自:《C Primer Plus》第五版p335
在这个随机函数使用了一个具有内部链接的静态变量。ANSI C程序库提供了rand()函数来产生随机数。有多种产生随机数的算法,ANSI C标准允许C实现使用针对特定机器的最佳算法,不过,ANSI C也提供了一个可移植的标准算法,可以在不同系统中产生随机数。事实上,rand()是一个”伪随机数发生器“,这意味着可以预测数字的实际顺序(计算机不具有自发性),但这些数字在可能的取值范围内均匀分布。
s_and_r.cpp程序
/*s_and_r -- 包含函数rand1()和srand1()*/
/* 使用ANSI C ...
在编写处理诸如int这样基本类型的函数时,可向函数传递int数值,也可传递int型的指针,通常我们直接传递数值;只用在需要在函数中改值时,我们才传递指针。
对于处理数组的函数,只能传递指针,这样可使程序的效率更高。
如果通过值向函数传递数组,则函数中必须分配足够存放一份原数组的拷贝的存储空间,然后把原数组的所用数据复制到这个新数组中。如果简单的把数组的地址传递给函数,然后让函数直接读写原数组,程序的效率会更高.
然而这种技术也会带来一些问题。通常C传递数据的值,其原因是要保证原始数据的完整性。函数使用原始数据的拷贝,这样就不会意外的修改原始数据。但是 ...