fopen(ファイルを開く)
関連関数open、fclose
ヘッダーファイル
#include
関数を定義 FILE * fopen(const char * path,const char *
モード);
機能の説明
パラメータのパス文字列には、開くファイルのパスとファイル名が含まれ、パラメータのモード文字列はフローの形状を表します。
mode には次の種類の文字列があります:
r
読み取り専用ファイルを開きます。このファイルは存在している必要があります。
r+ は、読み取りと書き込みが可能なファイルを開きます。そのファイルは存在する必要があります。
w
書き込み専用ファイルを開くと、ファイルが存在する場合、ファイル長が 0 にクリアされ、ファイルの内容が消去されます。ファイルが存在しない場合は、ファイルを作成します。
w+
読み取りおよび書き込み可能なファイルを開きます。ファイルが存在する場合、ファイルの長さはゼロにクリアされます。つまり、ファイルの内容は消去されます。ファイルが存在しない場合は、ファイルを作成します。
あ
書き込み専用ファイルを追加モードで開きます。ファイルが存在しない場合はファイルが作成され、ファイルが存在する場合は、書き込まれたデータがファイルの末尾に追加されます。つまり、ファイルの元の内容は保持されます。
あ+
追加モードで読み取りおよび書き込み用にファイルを開きます。ファイルが存在しない場合はファイルが作成され、ファイルが存在する場合は、書き込まれたデータがファイルの末尾に追加されます。つまり、ファイルの元の内容は保持されます。
r Open text file for reading. The stream is positioned at the beginning of the file. r+ Open for reading and writing. The stream is positioned at the beginning of the file. w Truncate file to zero length or create text file for writing. The stream is positioned at the beginning of the file. w+ Open for reading and writing. The file is created if it does not exist, otherwise it is truncated. The stream is posi‐ tioned at the beginning of the file. a Open for appending (writing at end of file). The file is created if it does not exist. The stream is positioned at the end of the file. a+ Open for reading and appending (writing at end of file). The file is created if it does not exist. The initial file posi‐ tion for reading is at the beginning of the file, but output is always appended to the end of the file.
上記の形態素文字列には、rb、w+b、ab+ などの b 文字を追加できます。また、その他の組み合わせでは、b を追加します。
この文字は、開かれているファイルがプレーン テキスト ファイルではなくバイナリ ファイルであることを関数ライブラリに伝えるために使用されます。ただし、Linux を含む POSIX システムでは、この文字は無視されます。 fopen() によって作成された新しいファイルには、S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH (0666) 権限が与えられます。このファイル権限は、umask 値も参照します。
戻り値
ファイルが正常に開かれると、ストリームを指すファイル ポインタが返されます。ファイルのオープンに失敗した場合は、NULL が返され、エラーコードが errno に格納されます。
追加メモ
通常、ファイルを開いた後、何らかのファイルの読み込みや書き込みが行われますが、ファイルのオープンに失敗すると、その後の読み込みや書き込みがスムーズに行われなくなりますので、fopen()以降のエラー判定や処理を行ってください。
例
#include<stdio.h> main() { FILE * fp; fp=fopen(“noexist”,”a+”); if(fp= =NULL) return; fclose(fp); }
1.
fprintf
関数: フォーマットされた出力をファイルに転送
ヘッダーファイル: #include
関数プロトタイプ: int
fprintf(FILE *ストリーム, char *フォーマット[, 引数,...]);
FILE*
FILE 型ポインタ
char* 形式の入力関数、printf と同じ形式
戻り値: 成功した場合は変換されたバイト数を返し、失敗した場合は負の数を返します
fp =
fopen("/local/test.c","a+");
fprintf(fp,"%sn",str);
2.
fscanf
関数: ストリームからのフォーマットされた入力を実行
ヘッダー ファイル: #include
関数プロトタイプ: int
fscanf(FILE *stream, char *format[,argument...]);
FILE* FILE 型ポインタ
char*
フォーマットされた出力関数、scanf と同じフォーマット
戻り値: 成功した場合は変換されたバイト数を返し、失敗した場合は負の数を返します
fp =
fopen("/local/test.c","a+");
fscanf(fp,"%s",str);
3.clearer(ファイルストリームのエラーフラグをクリア)
関連関数
feof
ヘッダーファイル #include
関数 void clearerr(FILE *
stream);
機能の説明
clearerr() は、パラメータ stream で指定されたファイル ストリームで使用されるエラー フラグをクリアします。
戻り値
4.fclose(ファイルを閉じる)
関連関数
close、fflush、fopen、setbuf
ヘッダーファイル #include
関数 int を定義
fclose(FILE * stream);
関数の説明
fclose() は、fopen() によって以前に開かれたファイルを閉じるために使用されます。このアクションにより、バッファ内のデータがファイルに書き込まれ、システムによって提供されるファイル リソースが解放されます。
戻り値
ファイルを閉じるアクションが成功した場合は 0 が返され、エラーが発生した場合は EOF が返され、エラー コードが errno に格納されます。
エラー コード EBADF は、パラメータ ストリームが開いているファイルではないことを示します。
例
fopen()を参照してください。
5.fdopen(ファイル記述子をファイルポインタに変換)
関連関数
fopen、open、fclose
ヘッダーファイル #include
関数定義 FILE * fdopen(int
fildes, const char * mode);
関数の説明 fdopen() はパラメータ fildes を変換します
ファイル記述子は、対応するファイル ポインタに変換されて返されます。パラメータ モード文字列はファイル ポインタのストリーム形式を表し、元のファイル記述子の読み取りおよび書き込みモードと同じである必要があります。モードについて
文字列形式については fopen() を参照してください。
戻り値 変換が成功した場合、ストリームを指すファイルポインタを返します。失敗すると NULL が返され、エラー コードが errno に格納されます。
例
#include<stdio.h> main() { FILE * fp =fdopen(0,”w+”); fprintf(fp,”%s/n”,”hello!”); fclose(fp); } 执行 hello!
6.feof(检查文件流是否读到了文件尾)
相关函数
fopen,fgetc,fgets,fread
表头文件 #include
定义函数 int feof(FILE *
stream);
函数说明
feof()用来侦测是否读取到了文件尾,尾数stream为fopen()所返回之文件指针。如果已到文件尾则返回非零值,其他情况返回0。
返回值
返回非零值代表已到达文件尾。
7.fflush(更新缓冲区)
相关函数
write,fopen,fclose,setbuf
表头文件 #include
定义函数 int
fflush(FILE* stream);
函数说明
fflush()会强迫将缓冲区内的数据写回参数stream指定的文件中。如果参数stream为NULL,fflush()会将所有打开的文件数据更新。
返回值
成功返回0,失败返回EOF,错误代码存于errno中。
错误代码 EBADF 参数stream
指定的文件未被打开,或打开状态为只读。其它错误代码参考write()。
8.fgetc(由文件中读取一个字符)
相关函数
open,fread,fscanf,getc
表头文件 include
定义函数 nt fgetc(FILE *
stream);
函数说明 fgetc()从参数stream所指的文件中读取一个字符。若读到文件尾而无数据时便返回EOF。
返回值
getc()会返回读取到的字符,若返回EOF则表示到了文件尾。
范例
#include<stdio.h> main() { FILE *fp; int c; fp=fopen(“exist”,”r”); while((c=fgetc(fp))!=EOF) printf(“%c”,c); fclose(fp); }
9.fgets(由文件中读取一字符串)
相关函数
open,fread,fscanf,getc
表头文件 include
定义函数 har * fgets(char *
s,int size,FILE * stream);
函数说明
fgets()用来从参数stream所指的文件内读入字符并存到参数s所指的内存空间,直到出现换行字符、读到文件尾或是已读了size-1个字符为止,最后会加上NULL作为字符串结束。
返回值
gets()若成功则返回s指针,返回NULL则表示有错误发生。
范例
#include<stdio.h> main() { char s[80]; fputs(fgets(s,80,stdin),stdout); } 执行 this is a test /*输入*/ this is a test /*输出*/
10.fileno(返回文件流所使用的文件描述词)
相关函数
open,fopen
表头文件 #include
定义函数 int fileno(FILE *
stream);
函数说明 fileno()用来取得参数stream指定的文件流所使用的文件描述词。
返回值
返回文件描述词。
范例
#include<stdio.h> main() { FILE * fp; int fd; fp=fopen(“/etc/passwd”,”r”); fd=fileno(fp); printf(“fd=%d/n”,fd); fclose(fp); } 执行 fd=3
12.fputc(将一指定字符写入文件流中)
相关函数
fopen,fwrite,fscanf,putc
表头文件 #include
定义函数 int fputc(int
c,FILE * stream);
函数说明 fputc 会将参数c 转为unsigned char 后写入参数stream 指定的文件中。
返回值
fputc()会返回写入成功的字符,即参数c。若返回EOF则代表写入失败。
范例
#include<stdio.h> main() { FILE * fp; char a[26]=”abcdefghijklmnopqrstuvwxyz”; int i; fp= fopen(“noexist”,”w”); for(i=0;i<26;i++) fputc(a,fp); fclose(fp); }
13.fputs(将一指定的字符串写入文件内)
相关函数
fopen,fwrite,fscanf,fputc,putc
表头文件 #include
定义函数 int
fputs(const char * s,FILE * stream);
函数说明
fputs()用来将参数s所指的字符串写入到参数stream所指的文件内。
返回值
若成功则返回写出的字符个数,返回EOF则表示有错误发生。
范例
请参考fgets()。
fread(从文件流读取数据)
相关函数
fopen,fwrite,fseek,fscanf
表头文件 #include
定义函数 size_t
fread(void * ptr,size_t size,size_t nmemb,FILE * stream);
函数说明
fread()用来从文件流中读取数据。参数stream为已打开的文件指针,参数ptr
指向欲存放读取进来的数据空间,读取的字符数以参数size*nmemb来决定。Fread()会返回实际读取到的nmemb数目,如果此值比参数nmemb
来得小,则代表可能读到了文件尾或有错误发生,这时必须用feof()或ferror()来决定发生什么情况。
返回值
返回实际读取到的nmemb数目。
附加说明
范例
#include<stdio.h> #define nmemb 3 struct test { char name[20]; int size; }s[nmemb]; int main(){ FILE * stream; int i; stream = fopen(“/tmp/fwrite”,”r”); fread(s,sizeof(struct test),nmemb,stream); fclose(stream); for(i=0;i<nmemb;i++) printf(“name[%d]=%-20s:size[%d]=%d/n”,i,s.name,i,s.size); } 执行 name[0]=Linux! size[0]=6 name[1]=FreeBSD! size[1]=8 name[2]=Windows2000 size[2]=11
14.freopen(打开文件)
相关函数
fopen,fclose
表头文件 #include
定义函数 FILE * freopen(const char *
path,const char * mode,FILE * stream);
函数说明
参数path字符串包含欲打开的文件路径及文件名,参数mode请参考fopen()说明。参数stream为已打开的文件指针。Freopen()会将原stream所打开的文件流关闭,然后打开参数path的文件。
返回值
文件顺利打开后,指向该流的文件指针就会被返回。如果文件打开失败则返回NULL,并把错误代码存在errno 中。
范例
#include<stdio.h> main() { FILE * fp; fp=fopen(“/etc/passwd”,”r”); fp=freopen(“/etc/group”,”r”,fp); fclose(fp); }
15.fseek(移动文件流的读写位置)
相关函数
rewind,ftell,fgetpos,fsetpos,lseek
表头文件 #include
定义函数 int
fseek(FILE * stream,long offset,int whence);
函数说明
fseek()用来移动文件流的读写位置。参数stream为已打开的文件指针,参数offset为根据参数whence来移动读写位置的位移数。
参数
whence为下列其中一种:
SEEK_SET从距文件开头offset位移量为新的读写位置。SEEK_CUR
以目前的读写位置往后增加offset个位移量。
SEEK_END将读写位置指向文件尾后再增加offset个位移量。
当whence值为SEEK_CUR
或SEEK_END时,参数offset允许负值的出现。
下列是较特别的使用方式:
1) 欲将读写位置移动到文件开头时:fseek(FILE *stream,0,SEEK_SET);
2)
欲将读写位置移动到文件尾时:fseek(FILE *stream,0,0SEEK_END);
返回值
当调用成功时则返回0,若有错误则返回-1,errno会存放错误代码。
附加说明
fseek()不像lseek()会返回读写位置,因此必须使用ftell()来取得目前读写的位置。
范例
#include<stdio.h> main() { FILE * stream; long offset; fpos_t pos; stream=fopen(“/etc/passwd”,”r”); fseek(stream,5,SEEK_SET); printf(“offset=%d/n”,ftell(stream)); rewind(stream); fgetpos(stream,&pos); printf(“offset=%d/n”,pos); pos=10; fsetpos(stream,&pos); printf(“offset = %d/n”,ftell(stream)); fclose(stream); } 执行 offset = 5 offset =0 offset=10
16.ftell(取得文件流的读取位置)
相关函数
fseek,rewind,fgetpos,fsetpos
表头文件 #include
定义函数 long
ftell(FILE * stream);
函数说明 ftell()用来取得文件流目前的读写位置。参数stream为已打开的文件指针。
返回值
当调用成功时则返回目前的读写位置,若有错误则返回-1,errno会存放错误代码。
错误代码 EBADF
参数stream无效或可移动读写位置的文件流。
范例 参考fseek()。
17.fwrite(将数据写至文件流)
相关函数
fopen,fread,fseek,fscanf
表头文件 #include
定义函数 size_t
fwrite(const void * ptr,size_t size,size_t nmemb,FILE * stream);
函数说明
fwrite()用来将数据写入文件流中。参数stream为已打开的文件指针,参数ptr
指向欲写入的数据地址,总共写入的字符数以参数size*nmemb来决定。Fwrite()会返回实际写入的nmemb数目。
返回值
返回实际写入的nmemb数目。
范例
#include<stdio.h> #define set_s (x,y) {strcoy(s[x].name,y);s[x].size=strlen(y);} #define nmemb 3 struct test { char name[20]; int size; }s[nmemb]; main() { FILE * stream; set_s(0,”Linux!”); set_s(1,”FreeBSD!”); set_s(2,”Windows2000.”); stream=fopen(“/tmp/fwrite”,”w”); fwrite(s,sizeof(struct test),nmemb,stream); fclose(stream); } 执行 参考fread()。
18.getc(由文件中读取一个字符)
相关函数
read,fopen,fread,fgetc
表头文件 #include
定义函数 int getc(FILE *
stream);
函数说明
getc()用来从参数stream所指的文件中读取一个字符。若读到文件尾而无数据时便返回EOF。虽然getc()与fgetc()作用相同,但getc()为宏定义,非真正的函数调用。
返回值
getc()会返回读取到的字符,若返回EOF则表示到了文件尾。
范例
参考fgetc()。
19.getchar(由标准输入设备内读进一字符)
相关函数
fopen,fread,fscanf,getc
表头文件 #include
定义函数 int
getchar(void);
函数说明 getchar()用来从标准输入设备中读取一个字符。然后将该字符从unsigned
char转换成int后返回。
返回值 getchar()会返回读取到的字符,若返回EOF则表示有错误发生。
附加说明
getchar()非真正函数,而是getc(stdin)宏定义。
范例
#include<stdio.h> main() { FILE * fp; int c,i; for(i=0li<5;i++) { c=getchar(); putchar(c); } } 执行 1234 /*输入*/ 1234 /*输出*/
20.gets(由标准输入设备内读进一字符串)
相关函数
fopen,fread,fscanf,fgets
表头文件 #include
定义函数 char *
gets(char *s);
函数说明
gets()用来从标准设备读入字符并存到参数s所指的内存空间,直到出现换行字符或读到文件尾为止,最后加上NULL作为字符串结束。
返回值
gets()若成功则返回s指针,返回NULL则表示有错误发生。
附加说明
由于gets()无法知道字符串s的大小,必须遇到换行字符或文件尾才会结束输入,因此容易造成缓冲溢出的安全性问题。建议使用fgets()取代。
范例
参考fgets()
21.mktemp(产生唯一的临时文件名)
相关函数
tmpfile
表头文件 #include
定义函数 char * mktemp(char *
template);
函数说明
mktemp()用来产生唯一的临时文件名。参数template所指的文件名称字符串中最后六个字符必须是XXXXXX。产生后的文件名会借字符串指针返回。
返回值
文件顺利打开后,指向该流的文件指针就会被返回。如果文件打开失败则返回NULL,并把错误代码存在errno中。
附加说明 参数template所指的文件名称字符串必须声明为数组,如:
char template[ ]=”template-XXXXXX”;
不可用char
* template=”template-XXXXXX”;
范例
#include<stdlib.h> main() { char template[ ]=”template-XXXXXX”; mktemp(template); printf(“template=%s/n”,template); }
22.putc(将一指定字符写入文件中)
相关函数
fopen,fwrite,fscanf,fputc
表头文件 #include
定义函数 int putc(int
c,FILE * stream);
函数说明 putc()会将参数c转为unsigned
char后写入参数stream指定的文件中。虽然putc()与fputc()作用相同,但putc()为宏定义,非真正的函数调用。
返回值
putc()会返回写入成功的字符,即参数c。若返回EOF则代表写入失败。
范例
参考fputc()。
23.putchar(将指定的字符写到标准输出设备)
相关函数
fopen,fwrite,fscanf,fputc
表头文件 #include
定义函数 int putchar
(int c);
函数说明 putchar()用来将参数c字符写到标准输出设备。
返回值
putchar()会返回输出成功的字符,即参数c。若返回EOF则代表输出失败。
附加说明
putchar()非真正函数,而是putc(c,stdout)宏定义。
范例
参考getchar()。
24.rewind(重设文件流的读写位置为文件开头)
相关函数
fseek,ftell,fgetpos,fsetpos
表头文件 #include
定义函数 void
rewind(FILE * stream);
函数说明
rewind()用来把文件流的读写位置移至文件开头。参数stream为已打开的文件指针。此函数相当于调用fseek(stream,0,SEEK_SET)。
返回值
范例
参考fseek()
25.setbuf(设置文件流的缓冲区)
相关函数
setbuffer,setlinebuf,setvbuf
表头文件 #include
定义函数 void
setbuf(FILE * stream,char * buf);
函数说明
在打开文件流后,读取内容之前,调用setbuf()可以用来设置文件流的缓冲区。参数stream为指定的文件流,参数buf指向自定的缓冲区起始地址。如果参数buf为NULL指针,则为无缓冲IO。Setbuf()相当于调用:setvbuf(stream,buf,buf?_IOFBF:_IONBF,BUFSIZ)
返回值
26.setbuffer(设置文件流的缓冲区)
相关函数
setlinebuf,setbuf,setvbuf
表头文件 #include
定义函数 void
setbuffer(FILE * stream,char * buf,size_t size);
函数说明
在打开文件流后,读取内容之前,调用setbuffer()可用来设置文件流的缓冲区。参数stream为指定的文件流,参数buf指向自定的缓冲区起始地址,参数size为缓冲区大小。
返回值
27.setlinebuf(设置文件流为线性缓冲区)
相关函数
setbuffer,setbuf,setvbuf
表头文件 #include
定义函数 void
setlinebuf(FILE * stream);
函数说明
setlinebuf()用来设置文件流以换行为依据的无缓冲IO。相当于调用:setvbuf(stream,(char *
)NULL,_IOLBF,0);请参考setvbuf()。
返回值
28.setvbuf(设置文件流的缓冲区)
相关函数
setbuffer,setlinebuf,setbuf
表头文件 #include
定义函数 int
setvbuf(FILE * stream,char * buf,int mode,size_t size);
函数说明
在打开文件流后,读取内容之前,调用setvbuf()可以用来设置文件流的缓冲区。参数stream为指定的文件流,参数buf指向自定的缓冲区起始地址,参数size为缓冲区大小,参数mode有下列几种
_IONBF
无缓冲IO
_IOLBF 以换行为依据的无缓冲IO
_IOFBF
完全无缓冲IO。如果参数buf为NULL指针,则为无缓冲IO。
返回值
29.ungetc(将指定字符写回文件流中)
相关函数
fputc,getchar,getc
表头文件 #include
定义函数 int ungetc(int c,FILE
* stream);
函数说明
ungetc()将参数c字符写回参数stream所指定的文件流。这个写回的字符会由下一个读取文件流的函数取得。
返回值 成功则返回c
字符,若有错误则返回EOF。
#include <stdio.h> #include <stdlib.h> int main() { FILE *fp = NULL; char* str; char re; int num = 10; str = (char*)malloc(100); //snprintf(str, 10,"test: %s", "0123456789012345678"); // printf("str=%s\n", str); fp = fopen("/local/test.c","a+"); if (fp==NULL){ printf("Fail to open file\n"); } // fseek(fp,-1,SEEK_END); num = ftell(fp); printf("test file long:%d\n",num); fscanf(fp,"%s",str); printf("str = %s\n",str); printf("test a: %s\n",str); while ((re=getc(fp))!=EOF){//getc可以用作fgetc用 printf("%c",re); } //fread(str,10,10,fp); fgets(str,100,fp); printf("test a: %s\n",str); sprintf(str,"xiewei test is:%s", "ABCDEFGHIGKMNI"); printf("str2=%s\n", str); // fprintf(fp,"%s\n",str); fwrite(str,2,10,fp); num = ftell(fp); if(str!=NULL){ free(str); } fclose(fp); return 0; }

C#.NETの設計パターンには、Singletonパターンと依存関係の注入が含まれます。 1.シングルトンモードは、クラスに1つのインスタンスしかないことを保証します。これは、グローバルアクセスポイントが必要なシナリオに適していますが、安全性と虐待の問題をスレッドすることに注意する必要があります。 2。依存関係の噴射により、依存関係を注入することにより、コードの柔軟性とテスト可能性が向上します。多くの場合、コンストラクターの注入に使用されますが、複雑さを高めるために過度の使用を避ける必要があります。

C#.NETは、ゲーム開発、金融サービス、モノのインターネット、クラウドコンピューティングの分野で現代世界で広く使用されています。 1)ゲーム開発では、C#を使用してUnityエンジンを介してプログラムします。 2)金融サービスの分野では、C#.NETが高性能取引システムとデータ分析ツールの開発に使用されます。 3)IoTおよびクラウドコンピューティングに関して、C#.NETはAzure Servicesを通じてサポートを提供して、デバイス制御ロジックとデータ処理を開発します。

.NETFRAMEWORKISWINDOWS-CENTRIC、while.netcore/5/6supportscross-platformdevelopment.1).netframework、2002年以来、isidealforwindowsprimitedincross-platformcapabilities.2).netcore、andtseverutions(andtseverutions(andtseverution)

C#.NET開発者コミュニティは、次のような豊富なリソースとサポートを提供します。1。Microsoftの公式文書、2。StackoverflowやRedditなどのコミュニティフォーラム、3。Githubのオープンソースプロジェクト。これらのリソースは、開発者が基本的な学習から高度なアプリケーションまでプログラミングスキルを向上させるのに役立ちます。

C#.NETの利点には以下が含まれます。1)非同期プログラミングなどの言語機能により、開発が簡素化されます。 2)パフォーマンスと信頼性、JITコンピレーションとゴミ収集メカニズムによる効率の向上。 3)クロスプラットフォームサポート、.NetCoreはアプリケーションシナリオを拡張します。 4)Webからデスクトップ、ゲーム開発までの優れたパフォーマンスを備えた幅広い実用的なアプリケーション。

C#は常に.NETに結び付けられているわけではありません。 1)C#は、モノランタイム環境で実行でき、LinuxおよびMacOSに適しています。 2)Unityゲームエンジンでは、C#はスクリプトに使用され、.NETフレームワークに依存しません。 3)C#は、.NetMicRoframeworkなどの埋め込みシステム開発にも使用できます。

C#は、.NETエコシステムで中核的な役割を果たし、開発者にとって好ましい言語です。 1)C#は、C、C、Javaの利点を組み合わせた効率的で使いやすいプログラミング方法を提供します。 2).NETランタイム(CLR)を介して実行して、効率的なクロスプラットフォーム操作を確保します。 3)C#は、LINQや非同期プログラミングなどの基本的な使用から高度な使用をサポートします。 4)最適化とベストプラクティスには、StringBuilderおよび非同期プログラミングを使用して、パフォーマンスと保守性を向上させることが含まれます。

C#は、2000年にMicrosoftがリリースしたプログラミング言語で、CのパワーとJavaのシンプルさを組み合わせることを目指しています。 1.C#は、カプセル化、継承、多型をサポートするタイプセーフ、オブジェクト指向のプログラミング言語です。 2. C#のコンパイルプロセスは、コードを中間言語(IL)に変換し、.NETランタイム環境(CLR)でマシンコード実行にコンパイルします。 3. C#の基本的な使用法には、可変宣言、制御フロー、関数の定義が含まれ、高度な使用法には非同期プログラミング、LINQ、およびデリゲートなどが含まれます。4。一般的なエラーには、デバッガー、例外処理、ロギングを介してデバッグできるタイプミスマッチおよびヌル参照の例外が含まれます。 5.パフォーマンスの最適化の提案には、LINQの使用、非同期プログラミング、およびコードの読み取り可能性の向上が含まれます。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

WebStorm Mac版
便利なJavaScript開発ツール
