您的位置:首页 > 编程语言 > C语言/C++

C语言复习

2014-03-20 21:34 211 查看
程序通常以文件的方式存放在磁盘上,运行程序需要将程序装入内存,可执行文件中的主要部分是二进制编码的机器指令和数据,C语言需要通过编译器的编译成obj文件,然后通过链接程序链接库文件生成可执行程序。

编程:从键盘输入两个整数,输出最大者

#include <iostream>

int main()
{
int max(int,int);
int a,b,m;
scanf("%d%d",&a,&b);
m=max(a,b);
printf("the max of a and b is: %d",m);
}
int max(int a,int b)
{
if(a>b)
return a;
else
return b;
}


注意scanf("%d%d",&a,&b),输入23  34,输出34。程序正确,但是输入23,34.输出错误,将函数改为scanf("%d,%d",&a,&b);程序正确,但输入23 34输出错误,下面解释其原因

在scanf("%d%d",&a,&b)中输入以空格,tab,space,为结束符,当遇到逗号时,会出现错误,所以输入23,34只能正确读入23,b不能正确读入。scanf("%d,%d",&a,&b)同理。

在用"%c"输入时空格和转义字符均作为有效字符

scanf的读取较为复杂,建议使用cin,下面解释cin的基本用法

输入原理:

程序的输入都建有一个缓冲区,即输入缓冲区。一次输入过程是这样的,当一次键盘输入结束时会将输入的数据存入输入缓冲区,而cin函数直接从输入缓冲区中取数据。正因为cin函数是直接从缓冲区取数据的,所以有时候当缓冲区中有残留数据时,cin函数会直接取得这些残留数据而不会请求键盘输入

cin.getline();

istream& getline (char* s, streamsize n );
istream& getline (char* s, streamsize n, char delim );


功能是:一次读取多个字符(包括空白字符),直到读满N-1个,或者遇到指定的结束符为止(默认的是以'\n'结束)。

例:

#include <iostream>

using namespace std;

int main()

{

char a[10];

cin.getline(a,10);

for(int i=0;i<10;i++)

cout<<a[i]<<" ";

}

输入:1234567890123

输出:1 2 3 4 5 6 7 8 9 _ (第10位存放字符串结束符'\0')

该函数有一个问题,当输入过多,超过读取的大小时,会将std::cin.fail()设置为1,失效,后面的输入都会出错,这时需要std::cin.clear()将输入回复,后面的输入会从上次输入后面读取。

另一种getline()
getline(istream,string),读取string中的内容

single character (1)
int get();
istream& get (char& c);

c-string (2)
istream& get (char* s, streamsize n);
istream& get (char* s, streamsize n, char delim);

stream buffer (3)
istream& get (streambuf& sb);
istream& get (streambuf& sb, char delim);

get()函数的用法如上。

程序:读入double数据,三角形的三条边计算面积
#include <iostream>
#include "math.h"
int main()
{
double a,b,c,s,area;
scanf("%lf%lf%lf",&a,&b,&c);
printf("%lf %lf %lf",a,b,c);
s=(a+b+c)/2;
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("a=%7.2f,b=%7.2f,c=%7.2f",a,b,c);
printf("\narea=%7.2f\n",area);
}


在读入和输出double数据时需要再f前加l,否则出现截位,输入输出错误

sizeof的几种用法:
#include <stdio.h>
int main()
{
int i=0;
printf("length of int is: %d",sizeof(int));
//printf("length of int is: %d",sizeof int);
printf("length of int is: %d",sizeof i);
printf("length of int is: %d",sizeof(i));
}


在计算类型的字节时需要加上括号,否则出错
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c