きったんの頭

HOME > C

C/C++ メモ

| Hello World | 予約語 | プリプロセッサ | ファイル操作 | リンク |

Hello World

hello.c

#include <stdio.h>

int main () {
  printf("Hello World!\n");
  return 0;
}
実行 (gcc)
$ gcc -o hello hello.c
$ ./hello
Hello World!

hello.cc

#include <iostream>
using namespace std;

int main () {
  cout << "Hello World!" << endl;
  return 0;
}
実行 (g++)
$ g++ -o hello hello.cc
$ ./hello
Hello World!

make

# Makefile_hello for windows

CC = gcc
RM = del
CFLAGS = -g -W -Wall
TARGET = hello.exe
OBJS = hello.o

all: $(TARGET)

$(TARGET): $(OBJS)
	$(CC) -o $@ $(OBJS)

clean:
	-$(RM) $(TARGET) $(OBJS)

.c.o:
	$(CC) $(CFLAGS) -c $<

hello.o: 
$ make -f Makefile_hello

コマンドライン引数

// cmdl.c
#include <stdio.h>

int main (int argc, char **argv) {
  int i;

  for (i = 0; i < argc; i++) {
    printf("%d\t%s\n", i, argv[i]);
  }

  return 0;
}
$ gcc -o cmdl cmdl.c
$ ./cmdl a b c
0       cmdl
1       a
2       b
3       c

予約語

Wikipedia

制御

アクセス制御
コメントアウト

データ型

修飾子
型変換
boolean
数値

配列

// 初期化
int a[2];
int b[] = {1,2};	//b[0] = 1, b[1] = 2
// 動的配列 (C++)
int length = 7;
int *arr;
arr = new int[length];
if (!arr) {
  std::cerr << "memory error" << std::endl;
  abort();
}

delete [] arr;
// 動的配列 (C)
#include <stdlib.h>

int *arr;
arr = (int*)malloc(7);
if (arr == NULL) {
  fprintf(stderr, "memory error\n");
  exit(EXIT_FAILURE);
}

free(arr);

プリプロセッサ


#if defined(MACRO_A) || defined(MACRO_B)
  /* A or B */
#elif !defined(MACRO_C) && defined(MACRO_D)
  /* not C and D */
#endif

ディレクティブ - MoonWing

マクロ

#define PI 3.14
#define MAX(a,b) ((a)>(b)?(a):(b))
事前定義マクロ

テンプレート

template<class T>
struct float_trait {
  typedef T T_float;
};

template<>
struct float_trait<char> {
  typedef double T_float;
};

template<class T>
typename float_trait<T>::T_float average(const T* data, int length) {
  T sum = 0;
  for (int i = 0; i < length; ++i)
    sum += data[i];
  return sum / length;
}

ファイル操作

読み込み

#include <fstream>
#include <iostream>
using namespace std;

int main() {
    char c;
    ifstream ifs("test.txt");

    while (ifs.get(c)) {
        cout << c;
    }
    cout << endl;

    return 0;
}

書き込み

#include <fstream>
using namespace std;

int main()
{
    ofstream ofs;
    ofs.open("test.txt", ios::out | ios::app);

    ofs << "testmessage" << endl;
    ofs.close();

    return 0;
}

開発環境

ライブラリ/ツール

数学

入門/解説