之前在win7中运行c/c++下个vc就可以编译运行了,现在换了Mac,上网一看需要下个xcode,哎哟,好大啊,当时又没网,捉急,咦,mac的终端可以编译cpp文件,天哪,棒呆了。
当然,使用mac的大佬们肯定知道,我这种小白还是记下来给小白一起看吧。
如何在mac下简单的使用c++
除了使用xcode,如果只是简单的学习,可以使用mac自带的终端实现。
- 首先使用编辑器随便写一段c++的代码,存到一个文件夹中,格式为.cpp,
- 然后打开终端,找到这个文件,使用g++ 编译,这是同目录中将会出现一个以.out结尾的文件,
- 然后在终端运行./a.out,这是就能看到运行的结果了。
嘎嘎 。是不是很方便。不过后面还是打算下xcode,据说是Mac的神器,不知道是不是真的。
好了,顺便把复习c++的简单代码做个笔记。方便日后复习。看到结构体和指针的引用,感觉还是需要再多看两遍。哎,之前学的单点测试和多点测试早就还给谁谁谁了。捂脸。
#include<stdio.h>
// int main(){
// int a;
// char c,str[10];
// scanf("%d%c%s",&a,&c,str);
// printf("a=%d,c=%c,str=%s",a,c,str);
// return 0;
// }
/* 转义*/
// int main(){
// printf("abcd\nefg\nhijklmn");
// return 0;
// }
/* %md*/
// int main(){
// int a = 123,b = 1234567;
// printf("%5d\n",a);
// printf("%5d\n",b);
// return 0;
// }
/* %0md */
// int main(){
// int a = 123, b = 1234567;
// printf("%05d\n", a);
// printf("%05d\n", b);
// return 0;
// }
/*%.mf 可以让浮点数保留m位小数输出*/
// int main(){
// double d1 = 12.3456;
// printf("%.0f\n",d1);
// printf("%.1f\n",d1);
// printf("%.2f\n",d1);
// printf("%.3f\n",d1);
// printf("%.4f\n",d1);
// printf("%.5f\n",d1);
// return 0;
// }
/* 使用getchar和putchar输入输出字符 */
// int main(){
// char c1,c2,c3;
// c1 = getchar();
// getchar();
// c2 = getchar();
// c3 = getchar();
// putchar(c1);
// putchar(c2);
// putchar(c3);
// return 0;
// }
// int main(){
// char str[5][5];
// for(int i = 0;i<3;i++){
// for(int j = 0;j<3;j++){
// str[i][j] = getchar();
// }
// getchar();
// }
// for(int i = 0;i<3;i++){
// for(int j = 0;j<3;j++){
// putchar(str[i][j]);
// }
// putchar('\n');
// }
// return 0;
// }
//gets puts 输入输出
//gets用来输入一行字符串(注意:gets识别换行符\n做起输入结束,因此scanf完一个整数后,如果要使用gets,
//需要先用getchar接收整数后的换行符),并将其存放于一维数组中(或者二维数组的一个维中);puts用来输出一行字符串,即将一维数组(或者二维数组的一维)在界面上输出,并紧跟着换行
// int main(){
// char str1[20];
// char str2[5][10];
// gets(str1);
// for(int i = 0;i<3;i++){
// gets(str2[i]);
// }
// puts(str1);
// for(int i = 0;i<3;i++){
// puts(str2[i]);
// }
// return 0;
// }
// int main(){
// char str[15];
// for(int i = 0;i<3;i++){
// str[i] = getchar();
// }
// puts(str);
// return 0;
// }
/* typedef 能给复杂的数据类型起一个别名*/
// typedef long long LL; //给long long起了一个别名LL
// int main(){
// LL a=123456789012345LL,b = 234567890123456LL;
// printf("%lld\n",a+b);
// return 0;
// }
/* 常用math函数 */
/* fabs(double x) 取绝对值*/
// #include<math.h>
// int main(){
// double db = -12.56;
// printf("%.2f\n",fabs(db));
// return 0;
// }
/* floor(double) and ceil(double) 向下取整,向上取整 */
// #include<math.h>
// int main(){
// double db1 = -5.2,db2 = 5.2;
// printf("%.0f %.0f\n",floor(db1), ceil(db1));
// printf("%.0f %.0f\n",floor(db2), ceil(db2));
// return 0;
// }
/* pow(double r,double p) 用于返回r^p,要求r和p都是double型 */
// #include<math.h>
// int main(){
// double db = pow(2.0 ,3.0);
// printf("%f\n",db);
// return 0;
// }
/* sqrt(double x) 求算术平方根*/
// #include<math.h>
// int main(){
// double db = sqrt(2.0);
// printf("%f\n",db);
// return 0;
// }
/* log(double x) 用于返回double型变量的以自然对数为底的对数 */
//c语言中没有对任意底数求对数的函数,因此必须使用换底公式来将不是以自然对数为迪的对数转换为以e为底的对数
// #include<math.h>
// int main(){
// double db = log(1.0);
// printf("%f\n",db);
// return 0;
// }
/* sin(dounle x) cos(double x) tan(double x) 正弦值 余弦值 正切值*/
// #include<math.h>
// const double pi = acos(-1.0);
// int main(){
// double db1 = sin(pi *45 / 180);
// double db2 = cos(pi *45 / 180);
// double db3 = tan(pi *45 / 180);
// printf("%f,%f,%f\n",db1,db2,db3);
// return 0;
// }
/* asin(dounle x) acos(double x) atan(double x) 反正弦值 反余弦值 反正切值*/
// #include<math.h>
// int main(){
// double db1 = asin(1);
// double db2 = acos(-1.0);
// double db3 = atan(0);
// printf("%f,%f,%f\n",db1,db2,db3);
// return 0;
// }
/* round(double x) 将变量x四舍五入*/
// #include<math.h>
// int main(){
// double db1 = round(3.40);
// double db2 = round(3.45);
// double db3 = round(3.50);
// double db4 = round(3.55);
// double db5 = round(3.60);
// double db6 = round(3.46);
// printf("%d,%d,%d,%d,%d,%d\n",(int)db1,(int)db2,(int)db3,(int)db4,(int)db5,(int)db6);
// return 0;
// }
//选择结构
/* if */
// int main(){
// int n = 5,m = 0;
// if(n){
// n = 9;
// printf("%d\n",n);
// return 0;
// }else{
// n = 22;
// printf("%d\n",n);
// return 0;
// }
// }
/* switch */
// int main(){
// int a = 1,b = 2;
// switch(a+b){
// case 2:
// printf("%d\n",a);
// break;
// case 3:
// printf("%d\n",b);
// break;
// case 4:
// printf("%d\n",a+b);
// break;
// default:
// printf("sad story\n");
// }
// return 0;
// }
/* 循环结构 */
//while
// int main(){
// int n = 1,sum = 0;
// while (n <= 100){
// sum = sum + n;
// n++;
// }
// printf("sum = %d\n",sum);
// return 0;
// }
//数组
// int main(){
// int a[10] = {5,3,2,6,8,4};
// for(int i = 0;i<10;i++){
// printf("a[%d] = %d\n",i,a[i]);
// }
// return 0;
// }
//顺推
// int main(){
// int a[10];
// scanf("%d",&a[0]);
// for(int i = 1;i < 10;i++){
// a[i] = a[i - 1] * 2;
// }
// for(int i = 0;i < 10;i++){
// printf("a[%d] = %d\n",i,a[i]);
// }
// return 0;
// }
//冒泡排序
//exchange two num
// int main(){
// int a = 1,b = 2;
// int temp = a;
// a = b;
// b = temp;
// printf("a = %d,b = %d\n",a , b);
// return 0;
// }
// int main(){
// int a[10] = {3,4,2,5,6,7};
// for(int i = 1 ;i < 5;i++){//进行n-1趟
// //第i趟时从a[0]到a[n-i-1]都与它们的下一个数比较
// for(int j = 0; j<5-i;j++){//如果左边的数比较大,则交换a[j]和a[j+1]
// if(a[j]>a[j+1]){
// int temp = a[j];
// a[j] = a[j+1];
// a[j+1] = temp;
// }
// }
// }
// for(int i = 0;i<6;i++){
// printf("%d",a[i]);
// }
// return 0;
// }
//二维数组
// int main(){
// int a[5][6] = {{3,1,2},{8,4},{},{1,2,3,4,5}};
// for(int i = 0; i< 5;i++){
// for(int j = 0;j<6;j++){
// printf("%d",a[i][j]);
// }
// printf("\n");
// }
// return 0;
// }
//将两个二维数组相加,并将结果存放到另一个二维数组中去
// int main(){
// int a[3][3],b[3][3];
// for(int i = 0;i<3;i++){
// for(int j = 0 ;j<3;j++){
// scanf("%d",&a[i][j]);
// }
// }
// for(int i = 0;i<3;i++){
// for(int j=0;j<3;j++){
// scanf("%d",&b[i][j]);
// }
// }
// int c[3][3];
// for(int i = 0;i<3;i++){
// for(int j = 0;j<3;j++){
// c[i][j] = a[i][j]+b[i][j];
// }
// }
// for(int i = 0;i<3;i++){
// for(int j = 0;j<3;j++){
// printf("%d",c[i][j]);
// }
// printf("\n");
// }
// return 0;
// }
//memset函数
// #include<string.h>
// int main(){
// int a[5] = {1,2,3,4,5};
// memset(a,0,sizeof(a));
// for(int i = 0;i<5;i++){
// printf("%d",a[i]);
// }
// printf("\n");
// memset(a,-1,sizeof(a));
// for(int i = 0;i<5;i++){
// printf("%d",a[i]);
// }
// printf("\n");
// return 0;
// }
//string.h头文件
/* strlen */
// #include<string.h>
// int main(){
// char str[10];
// gets(str);
// int len = strlen(str);
// printf("%d\n",len);
// return 0;
// }
/* strcmp 返回两个字符串大小的比较结果,比较原则时按字典序*/
// #include<string.h>
// int main(){
// char str1[50],str2[50];
// gets(str1);
// gets(str2);
// int cmp = strcmp(str1,str2);
// if(cmp<0)
// printf("str1<str2\n");
// else if(cmp > 0 )
// printf("str1>str2\n");
// else printf("str1==str2\n");
// return 0;
// }
// int x;
// void change(){
// x = x+1;
// }
// int main(){
// x = 10;
// change();
// printf("%d\n",x);
// return 0;
// }
//以数组作为函数参数
// void change(int a[],int b[][5]){
// a[0] = 1;
// a[1] = 3;
// a[2] = 5;
// b[0][0] = 1;
// }
// int main(){
// int a[3] = {0};
// int b[5][5] = {0};
// change(a,b);
// for(int i = 0;i<3;i++){
// printf("%d\n",a[i]);
// }
// return 0;
// }
//递归调用
// int F(int n){
// if(n == 0)
// return 1;
// else
// return F(n - 1) * n;
// }
// int main(){
// int n;
// scanf("%d",&n);
// printf("%d\n",F(n));
// return 0;
// }
// int main(){
// int a ;
// int* p = &a;
// *p = 233;
// printf("%d, %d\n", *p,a);
// return 0;
// }
// int main(){
// int a = 1;
// // int p = &a;
// // a = 233;
// printf("%d\n", a);
// return 0;
// }
// int main(){
// int a[10] = {1};
// int* p = a;
// printf("%d\n",*p);
// return 0;
// }
// int main(){
// int a[10];
// for(int i = 0;i<10;i++){
// scanf("%d",a+i);
// }
// for(int i = 0;i<10;i++){
// printf("%d",*(a + i));
// }
// return 0;
// }
// int main(){
// int a[10] = {1, 2,3,4,5,6,7,8,9,10};
// for(int* p=a;p<a+10;p++){
// printf("%d",*p);
// }
// return 0;
// }
/* 有疑问*/
// int main(){
// int a[10] = {1,4,9,16,25,36,49};
// int *p = a;
// int *q = &a[5];
// printf("*q = %d\n", *q);
// printf("*p = %d\n", *p);
// printf("*q - *p = %d\n", *q-*p);
// return 0;
// }
// void change(int* p){
// *p = 233;
// }
// int main(){
// int a = 1;
// int* p = &a;
// change(p);
// printf("%d\n", a);
// return 0;
// }
/* use point to exchange two num */
// void swap(int* a,int* b){
// int temp = *a;
// *a = *b;
// *b = temp;
// }
// int main(){
// int a = 1,b = 2;
// int *p1 = &a,*p2 = &b;
// swap(p1,p2);
// printf("a = %d,b = %d\n",*p1,*p2);
// return 0;
// }
// void change(int &x){
// x = 1;
// }
// int main(){
// int x = 10;
// change(x);
// printf("%d\n",x);
// return 0;
// }
/*指针的引用*/
// void swap(int* &p1, int* &p2){
// int* temp = p1;
// p1 = p2;
// p2 = temp;
// }
// int main(){
// int a = 1,b = 2;
// int *p1 = &a,*p2 = &b;
// swap(p1,p2);
// printf("a = %d,b = %d\n",*p1,*p2);
// return 0;
// }
/* 结构体 */
struct Point{
int x,y;
Point(){}//用以不经出世后定义pt[10]
Point(int _x,int _y):x(_x),y(_y) {}
}pt[10];
int main(){
int num = 0;
for(int i = 1;i<= 3;i++){
for(int j = 1;j<= 3;j++){
pt[num++] = Point(i, j);//直接使用构造函数
}
}
for(int i = 0;i<num; i++){
printf("%d,%d\n",pt[i].x,pt[i].y);
}
return 0;
}
网友评论