define CRTSECURENOWARNINGS include stdio h int mainvoid char
- Slides: 86
#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 *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* 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"; 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); return 0; }
配列で書き出し #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", "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. 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 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 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 n", &b); return 0; } %xにしてもよい
実行してみる③ #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("%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", p); printf("&iは%p n", &i); return 0; }
実行してみる #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 = &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; *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 = &x; y = *p; printf("変数yの値は%d n", y); return 0; }
実行してみる③ #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; 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 (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", a[5]); return 0; } エラーになる
実行してみる① #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 n", s); return 0; }
実行してみる③ #include <stdio. h> int main(void){ char a[4] = "NET"; char b[4]; for(int i = 0; a[i] != '