ファイルにテキストを作成したいのですが、これが私のコードです:
int ecrire(){
char buf[1024];
int bytesStored;
int fildes;
char path[128];
int i=0;
mode_t mode = S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH;
int flags = O_WRONLY;
printf("\n%s-->Donner l'emplacement du fichier :%s ", CYAN_NORMAL, RESETCOLOR);
scanf("%s", path);
fildes = open(path, flags, mode);
if(fildes == -1){
return 0;
}
printf("\n%s-->Enter le contenu pour le fichier%s ", CYAN_NORMAL, RESETCOLOR);
printf("%s(Appuyer CTRl+D a la fin du fichier) :%s \n", CYAN_UNDERLINE , RESETCOLOR);
fflush(stdin);
while((buf[i] = getc(stdin)) != EOF) i++;
buf[i] = '\0';
bytesStored = sizeof(buf);
if(write(fildes,buf,bytesStored) < 0){
return 0;
}
close(fildes);
return 1;
}
たとえば、このコンテンツを書くと:
aaaaaaa
jjjjjjjjj
@@@@@@@
そして、私がそれを読むと、これが得られます:
aaaaaaa
jjjjjjjjj
@@@@@@@
P�td�=�=�=�w�wQ�td��}�Ya��E}���P�x�ڿ��ڿAa��*}�P���+}���}�x�ڿ�X�t�ڿp�ڿ���|����#a���Aa���ڿ+}�;0~�E�`��
�
.}�X(}��E}��#a�4C}�x�ڿ��ڿP�D�ڿ�Z���ڿ��}�`�ڿ4C}�h�ڿ�Z.}�\U�
~�x�ڿ��\U�;0~�D�ڿ\U�pS�~�E}�����#a�X(}�p�E}��A~�P�P���a�P�>�}�@���}�� \�P�\r`�+}���}��-}��-}���~���~��D}������F}���h�`���@}�+}�P�I`��M`[~�;H+}�X(}�N��#a� �@{���g�P���ڿ�Z�`�ڿ��}�ڿ ��ڿ�Z�H+}�8Y�}��!�������� J{�����}��fg� J{���ڿ8Y�����I`�N���8����h�`�X(}� J{���g� J{�}�U�g��J{���}�I`��|�sLn�@{�{~g�P�8Y���%~��Z�H+}���g��J{���ڿ�i���ڿ��J{�
なぜこの問題が発生するのか、どうすれば解決できますか :