http www ns kogakuin ac jpct 13140Prog C

  • Slides: 29
Download presentation
プログラミング論 ファイル入出力 http: //www. ns. kogakuin. ac. jp/~ct 13140/Prog. C/

プログラミング論 ファイル入出力 http: //www. ns. kogakuin. ac. jp/~ct 13140/Prog. C/

関数の仮引数と実引数(値渡し) void func(int a){ a = 7; } x void main(){ int x =

関数の仮引数と実引数(値渡し) void func(int a){ a = 7; } x void main(){ int x = 3; func(x); printf("%dn", x); } 100 番地 3 D-7

関数の仮引数と実引数(値渡し) void func(int a){ a = 7; } x void main(){ int x =

関数の仮引数と実引数(値渡し) void func(int a){ a = 7; } x void main(){ int x = 3; func(x); printf("%dn", x); } 100 番地 3 D-8

関数の仮引数と実引数(値渡し) void func(int a){ a = 7; } x void main(){ int x =

関数の仮引数と実引数(値渡し) void func(int a){ a = 7; } x void main(){ int x = 3; func(x); printf("%dn", x); } 実行結果 3 100 番地 3 D-11

関数の仮引数と実引数(参照渡し) void func(int a[2]){ a[0]=3; } X[] X[0]X[1] 100 番地 104 番地 void main(){

関数の仮引数と実引数(参照渡し) void func(int a[2]){ a[0]=3; } X[] X[0]X[1] 100 番地 104 番地 void main(){ 10 20 int x[2]; x[0]=10; x[1]=20; func(x); printf("%d %dn", x[0], x[1]); } D-13

関数の仮引数と実引数(参照渡し) void func(int a[2]){ a[0]=3; } X[] X[0]X[1] 100 番地 104 番地 void main(){

関数の仮引数と実引数(参照渡し) void func(int a[2]){ a[0]=3; } X[] X[0]X[1] 100 番地 104 番地 void main(){ 10 20 int x[2]; x[0]=10; x[1]=20; func(x); printf("%d %dn", x[0], x[1]); } D-14

関数の仮引数と実引数(参照渡し) void func(int a[2]){ a[0]=3; } a[] X[] a[0]a[1] X[0]X[1] 100 番地 104 番地

関数の仮引数と実引数(参照渡し) void func(int a[2]){ a[0]=3; } a[] X[] a[0]a[1] X[0]X[1] 100 番地 104 番地 void main(){ 10 20 int x[2]; x[0]=10; x[1]=20; func(x); printf("%d %dn", x[0], x[1]); } D-15

関数の仮引数と実引数(参照渡し) void func(int a[2]){ a[0]=3; } a[] X[] a[0]a[1] X[0]X[1] 100 番地 104 番地

関数の仮引数と実引数(参照渡し) void func(int a[2]){ a[0]=3; } a[] X[] a[0]a[1] X[0]X[1] 100 番地 104 番地 void main(){ 3 20 int x[2]; x[0]=10; x[1]=20; func(x); printf("%d %dn", x[0], x[1]); } D-16

関数の仮引数と実引数(参照渡し) void func(int a[2]){ a[0]=3; } X[] X[0]X[1] 100 番地 104 番地 void main(){

関数の仮引数と実引数(参照渡し) void func(int a[2]){ a[0]=3; } X[] X[0]X[1] 100 番地 104 番地 void main(){ 3 20 int x[2]; x[0]=10; x[1]=20; func(x); printf("%d %dn", x[0], x[1]); } 実行結果 3 20 D-17

ファイル処理例 0 b #include "stdafx. h" #include <stdlib. h> // exit()に必要 int main() {

ファイル処理例 0 b #include "stdafx. h" #include <stdlib. h> // exit()に必要 int main() { FILE *fp; int ret; ret = fopen_s( &fp, "S: \a. txt", "wt"); if ( ret != 0 ) { perror("ファイルを開けません"); exit(1); } fprintf(fp, "Hello, World!n"); fclose(fp); return 0; } D-22

fgetc (2/2) int ret; ret = fgetc( fp ); if( ret == -1 ){

fgetc (2/2) int ret; ret = fgetc( fp ); if( ret == -1 ){ perror("ファイル読み込み失敗. "); exit(1); } else { printf("文字=%c ", ret); printf("文字コード=%dn", ret); } D-24

#include "stdafx. h" #include <stdlib. h> ファイル処理例 1 int main() { int ret, ch;

#include "stdafx. h" #include <stdlib. h> ファイル処理例 1 int main() { int ret, ch; FILE *fp; ret = fopen_s(&fp, "S: \a. txt", "rt"); if( ret != 0) { perror("ファイルを開けません"); exit(1); } while( (ch = fgetc(fp)) != -1 ){ printf("(%c, %d)n", ch); } fclose(fp); return 0; } D-25

実行結果 (H, 72) (e, 101) (l, 108) (o, 111) (, , 44) ( ,

実行結果 (H, 72) (e, 101) (l, 108) (o, 111) (, , 44) ( , 10) (W, 87) (o, 111) (r, 114) (l, 108) (d, 100) (!, 33) ファイル処理例 1 "S: a. txt" Hello, World! D-26

ファイル処理例 2 #include "stdafx. h" #include <stdlib. h> int main(){ int ret, ch, cnt

ファイル処理例 2 #include "stdafx. h" #include <stdlib. h> int main(){ int ret, ch, cnt = 0; FILE *fp; ret = fopen_s(&fp, "S: \a. txt", "rt"); if (ret != 0) { perror("ファイルを開けません"); exit(1); } while( (ch = fgetc(fp)) != -1 ) { if( ch == 'o' ){ //文字aの文字コードは'a' cnt++; } } fclose(fp); printf("o は %d個ありました. n", cnt); return 0; D-27

良くある短縮表記 fp = fopen("S: \a. txt", "wt"); if( fp == NULL ){ ↓ if(

良くある短縮表記 fp = fopen("S: \a. txt", "wt"); if( fp == NULL ){ ↓ if( (fp=fopen("S: \a. txt", "wt")) == NULL ret = fopen_s(&fp, "S: \a. txt", "rt"); if( ret != 0){ ↓ if( (fopen_s(&fp, "S: \a. txt", "rt")) != 0 ) { ){ D-29