define CRTSECURENOWARNINGS include stdio h int mainvoid char

  • Slides: 86
Download presentation

#define _CRT_SECURE_NO_WARNINGS を使わないやり方(書き込み) #include <stdio. h> int main(void) { char st[] = "def"; FILE

#define _CRT_SECURE_NO_WARNINGS を使わないやり方(書き込み) #include <stdio. h> int main(void) { char st[] = "def"; FILE *fp; fopen_s(&fp, "text. txt", "w"); fprintf_s(fp, "%s", st); fclose(fp); return 0; }

#define _CRT_SECURE_NO_WARNINGS を使わないやり方(追加) #include <stdio. h> int main(void) { char st[] = "def"; FILE

#define _CRT_SECURE_NO_WARNINGS を使わないやり方(追加) #include <stdio. h> int main(void) { char st[] = "def"; FILE *fp; fopen_s(&fp, "text. txt", "a"); fprintf_s(fp, "%s", st); fclose(fp); return 0; }

#define _CRT_SECURE_NO_WARNINGS を使わないやり方(読み取り) #include <stdio. h> int main(void) { 読み取る文字の char st[20]; 個数分宣言する FILE*

#define _CRT_SECURE_NO_WARNINGS を使わないやり方(読み取り) #include <stdio. h> int main(void) { 読み取る文字の char st[20]; 個数分宣言する FILE* fp; fopen_s(&fp, "text. txt", "r"); if (fp == NULL) return 0; fscanf_s(fp, "%s", st, 20); fclose(fp); printf("%s n", st); return 0; }

CSVファイル書き出し #include <stdio. h> int main(void) { FILE* fp; char fname[] = "comma. csv";

CSVファイル書き出し #include <stdio. h> int main(void) { FILE* fp; char fname[] = "comma. csv"; char s 1[] = "test 01", s 2[] = "test 02", s 3[] = "test 03"; int n 1 = 10, n 2 = 20, n 3 = 30; float f 1 = 1. 0, f 2 = 2. 0, f 3 = 3. 0; fopen_s(&fp, fname, "w"); fprintf_s(fp, "%s, %d, %f, n", s 1, n 1, f 1); fprintf_s(fp, "%s, %d, %f, n", s 2, n 2, f 2); fprintf_s(fp, "%s, %d, %f, n", s 3, n 3, f 3); fclose(fp); return 0; } 「コンマ」で区切るこ とでExcelで開くことが

バイナリファイルの開閉 #include <stdio. h> int main(void) { FILE* fp; fopen_s(&fp, "text. dat", "wb"); fclose(fp);

バイナリファイルの開閉 #include <stdio. h> int main(void) { FILE* fp; fopen_s(&fp, "text. dat", "wb"); fclose(fp); return 0; }

配列で書き出し #include <stdio. h> int main(void) { int buf[] = { 10, 1000, 1000

配列で書き出し #include <stdio. h> int main(void) { int buf[] = { 10, 1000, 1000 }; FILE* fp; fopen_s(&fp, "text. dat", "wb"); fwrite(buf, sizeof(int), 4, fp); fclose(fp); 配列に注意 return 0; }

バイナリファイルの読み込み #include <stdio. h> int main(void) { int buf; FILE* fp; fopen_s(&fp, "text. dat",

バイナリファイルの読み込み #include <stdio. h> int main(void) { int buf; FILE* fp; fopen_s(&fp, "text. dat", "rb"); fread(&buf, sizeof(int), 1, fp); if (fp == NULL) バイナリフ return 0; ァイルの 1番 fclose(fp); 目を読み込 printf("%d n", buf); み return 0; } 10が表示される

配列の読み込み #include <stdio. h> int main(void) { 配列に注意 int buf[4]; FILE* fp; fopen_s(&fp, "text.

配列の読み込み #include <stdio. h> int main(void) { 配列に注意 int buf[4]; FILE* fp; fopen_s(&fp, "text. dat", "rb"); fread(buf, sizeof(int), 4, fp); if (fp == NULL) return 0; fclose(fp); for (int i = 0; i < 4; i++) printf("%d n", buf[i]); return 0; }

アドレス(ポインタ値)とは char short a E 000 E 011 E 001 b E 002 E

アドレス(ポインタ値)とは char short a E 000 E 011 E 001 b E 002 E 012 アドレス (ポインタ 値) E 013 E 003 E 014 E 004 E 015 E 006 E 016 1マスで 1バイト

アドレスの表し方 char a &a E 001 E 012 例 &a = 0 x. E

アドレスの表し方 char a &a E 001 E 012 例 &a = 0 x. E 001 &b = 0 x. E 004 E 002 E 013 E 003

実行してみる① #include <stdio. h> int main(void){ char a; short b; printf("aのアドレスは%p n", &a); printf("bのアドレスは%p

実行してみる① #include <stdio. h> int main(void){ char a; short b; printf("aのアドレスは%p n", &a); printf("bのアドレスは%p n", &b); return 0; } %xにしてもよい

実行してみる③ #include <stdio. h> int main(void) { int i 1, i 2, i 3;

実行してみる③ #include <stdio. h> int main(void) { int i 1, i 2, i 3; printf("i 1のアドレスは%p n", &i 1); printf("i 2のアドレスは%p n", &i 2); printf("i 3のアドレスは%p n", &i 3); return 0; }

実行してみる③ scanf_s() #include <stdio. h> int main(void) { int a, b, c; printf("整数を入力してくださいn"); scanf_s("%d", &a);

実行してみる③ scanf_s() #include <stdio. h> int main(void) { int a, b, c; printf("整数を入力してくださいn"); scanf_s("%d", &a); scanf_s("%d", &b); c = a+ b; printf("%d + %d = %d n", a, b, c); return 0; }

実行してみる② #include <stdio. h> int main(void){ int *p, i; p = &i; printf("pは%p n",

実行してみる② #include <stdio. h> int main(void){ int *p, i; p = &i; printf("pは%p n", p); printf("&iは%p n", &i); return 0; }

実行してみる #include <stdio. h> int main(void) { char a; char *p; p = &a;

実行してみる #include <stdio. h> int main(void) { char a; char *p; p = &a; printf("aのアドレスは%p n", p); printf("*pのアドレスは%p n", &p); return 0; } 違 い を 理 解 す る

実行してみる① #include <stdio. h> int main(void) { char a = 3; char *p =

実行してみる① #include <stdio. h> int main(void) { char a = 3; char *p = &a; char b = *p; printf("aのアドレスは%p n", p); printf("*pの中の値は%d n", *p); printf("bの中の値も%d n", b); return 0; }

ポインタが指し示す値の参照 char a = 3; char *p; p = &a; char b = *p;

ポインタが指し示す値の参照 char a = 3; char *p; p = &a; char b = *p; *p p char a=3 = &a char E 001 E 012 E 002 E 013 E 003 b 3

実行してみる② #include <stdio. h> int main(void) { char x = 4, y; char *p

実行してみる② #include <stdio. h> int main(void) { char x = 4, y; char *p = &x; y = *p; printf("変数yの値は%d n", y); return 0; }

実行してみる③ #include <stdio. h> int main(void) { int *p, i; p = &i; *p

実行してみる③ #include <stdio. h> int main(void) { int *p, i; p = &i; *p = 10; printf("*p = %d n", *p); printf(" i = %d n", i); printf(" &i = %x n", &i); printf(" &*p = %x n", &*p); return 0; }

実行してみる① #include <stdio. h> int main(void){ int a[4]; a[0] = 1; a[1] = 2;

実行してみる① #include <stdio. h> int main(void){ int a[4]; a[0] = 1; a[1] = 2; a[2] = 3; a[3] = 4; for (int i = 0; i < 4; i++) printf("%dn", a[i]); return 0; }

実行してみる② #include <stdio. h> int main(void){ int a[4] = {1, 2, 3, 4}; for

実行してみる② #include <stdio. h> int main(void){ int a[4] = {1, 2, 3, 4}; for (int i = 0; i < 4; i++) printf("%dn", a[i]); return 0; } 同じ実行結果になる

実行してみる③ #include <stdio. h> int main(void){ int a[4] = {1, 2, 3, 4}; printf("%dn",

実行してみる③ #include <stdio. h> int main(void){ int a[4] = {1, 2, 3, 4}; printf("%dn", a[5]); return 0; } エラーになる

実行してみる① #include <stdio. h> int main(void){ char m[6] = "Hello"; printf("%c%c%c n", m[0], m[1],

実行してみる① #include <stdio. h> int main(void){ char m[6] = "Hello"; printf("%c%c%c n", m[0], m[1], m[2], m[3], m[4]); printf("%c n", m[3]); printf("%s n", m); return 0; }

実行してみる② #include <stdio. h> int main(void){ char s[4] = "Cat"; s[0] = 'R'; printf("%s

実行してみる② #include <stdio. h> int main(void){ char s[4] = "Cat"; s[0] = 'R'; printf("%s n", s); return 0; }

実行してみる③ #include <stdio. h> int main(void){ char a[4] = "NET"; char b[4]; for(int i

実行してみる③ #include <stdio. h> int main(void){ char a[4] = "NET"; char b[4]; for(int i = 0; a[i] != ''; i++) b[i] = a[2 -i]; b[3] = ''; printf("%s は逆からだと %s n", a, b); return 0; }

実行してみる① #include <stdio. h> #include <string. h> int main(void){ char s 1[] = "cat",

実行してみる① #include <stdio. h> #include <string. h> int main(void){ char s 1[] = "cat", s 2[] = "dog"; char s[20]; sprintf_s(s, 20, "I love %s and %s. ", s 1, s 2); printf("「%s」の文字数は%d n", s, strlen(s)); return 0; }

実行してみる② #include <stdio. h> #include <string. h> int main(void) { char m[11] = "Hello";

実行してみる② #include <stdio. h> #include <string. h> int main(void) { char m[11] = "Hello"; printf("%s n", m); strcpy_s(m, 11, "Good bye!"); printf("%s n", m); 文字列を代入する return 0; ための関数 }

実行してみる #include <stdio. h> int main(void){ int a[2][3] ={ {10, 20, 30}, {40, 50,

実行してみる #include <stdio. h> int main(void){ int a[2][3] ={ {10, 20, 30}, {40, 50, 60} }; for(int x = 0; x < 2; x++) for(int y = 0; y < 3; y++) printf("a[%d] = %d n", x, y, a[x][y]); return 0; }

実行してみる #include <stdio. h> int main(void){ int a; int *p = NULL; return 0;

実行してみる #include <stdio. h> int main(void){ int a; int *p = NULL; return 0; } 76

実行してみる #include <stdio. h> int main(void){ int a[] = {0, 1, 2, 3, 4};

実行してみる #include <stdio. h> int main(void){ int a[] = {0, 1, 2, 3, 4}; int *p = a + 2; int *y = &a[4]; int *x = y - 1; printf("ポインタpの値は%d n", *p); printf("ポインタxの値は%d n", *x); return 0; } 81

実行してみる #include <stdio. h> int main(void) { int a[] = { 10, 20, 30,

実行してみる #include <stdio. h> int main(void) { int a[] = { 10, 20, 30, 40 }; printf("配列a[3]の値は%d n", *(a+3)); printf("配列a[0]の値に 3を足すと%d n", *a+3); return 0; } 85