私はCを新しくしており、割り当てを完了しようとしています。プログラムは、コマンドライン引数としてファイル名をとり、ファイルの内容を出力する必要があります。私のプログラムは、ファイル内の実際のテキストの代わりに混乱したテキストを印刷します。テキストファイルの文字を配列に追加する
私はインターネット上ですべての例を探しています/私の問題への答えとスタックしたままに!
私は間違っていますか?それが助けられる場合は、新しいコードを書くのではなく、自分のコードを修正して、わかりやすいようにしてください。
int main()
{
char fileName[20];
int *buffer;
int size;
// ask for file name and take input.
printf("Enter file name: ");
scanf("%s", fileName);
// open file in read mode.
FILE *fp;
fp = fopen(fileName, "r");
// If no file, show error.
if(fp == NULL)
{
printf("Error: Can't open file.\n");
return 1;
}
// count characters in file with fseek and put into size, then move the
// position of the file back to the beginning.
fseek(fp, 0, SEEK_END);
size = ftell(fp);
rewind(fp);
// allocate buffer and read file into buffer.
buffer = malloc(size+1);
fread(buffer, 1, size, fp);
// close the file.
fclose(fp);
// for loop reading array one character at a time.
for(int x = 0; x < size; x++)
{
printf("%c", buffer[x]);
}
return 0;
}
バッファオーバーフローには常に注意してください。 20文字のバッファーが狂っている。コンパイルされたコードで異常が発生している場合は、デバッガ*を開きます。 – tadman
'int * buffer' - >' char * buffer' –
'x
BLUEPIXY