gpt4 book ai didi

短文件上的 C fread() 在文件结束后会产生垃圾

转载 作者:行者123 更新时间:2023-11-30 16:37:48 25 4
gpt4 key购买 nike

我的教授指定将 file_1.txt 一次读取 100 字节到 char 数组 中。我生成了以下代码片段:

int key;
key = atoi(argv[1]);
FILE *file_pointer;
file_pointer = fopen(argv[2], "rb");
char buffer[100];
char output[sizeof(int)][100];
int output_counter = 0;
int read_counter;
int read_elements;

while(read_elements = fread(buffer, 1, 100, file_pointer) > 0)
{
read_counter = 0;
while(read_counter < 100)
{

printf("xor'ing %d and %d\n", key, buffer[read_counter]);
output[output_counter][read_counter] = buffer[read_counter] ^ key;
read_counter = read_counter + 1;
}

output_counter = output_counter + 1;
}

fclose(file_pointer);

file_1.txt 内容为:“项目的测试文件\n”。我使用了gccencrypt.c然后:

./a.out 111 file_1.txt file_2.txt

然后: ./a.out 111 file_2.txt file_3.txt

cat file_3.txt reads: 

项目的测试文件:

v▒▒▒s▒▒@/////////▒

第一次运行带有 file_1.txtfile_2.txt 的程序时,嵌套 while 循环中的 print 语句打印:

xor'ing 111 and 116

xor'ing 111 and 101

xor'ing 111 and 115

xor'ing 111 and 116

xor'ing 111 and 32

xor'ing 111 and 102

xor'ing 111 and 105

xor'ing 111 and 108

xor'ing 111 and 101

xor'ing 111 and 32

xor'ing 111 and 102

xor'ing 111 and 111

xor'ing 111 and 114

xor'ing 111 and 32

xor'ing 111 and 116

xor'ing 111 and 104

xor'ing 111 and 101

xor'ing 111 and 32

xor'ing 111 and 112

xor'ing 111 and 114

xor'ing 111 and 111

xor'ing 111 and 106

xor'ing 111 and 101

xor'ing 111 and 99

xor'ing 111 and 116

xor'ing 111 and 10

xor'ing 111 and 0

xor'ing 111 and 0

xor'ing 111 and 0

xor'ing 111 and 0

xor'ing 111 and 0

xor'ing 111 and 0

xor'ing 111 and 118

xor'ing 111 and 0

xor'ing 111 and 0

xor'ing 111 and 0

xor'ing 111 and 0

xor'ing 111 and 0

xor'ing 111 and 0

xor'ing 111 and 0

xor'ing 111 and -88

xor'ing 111 and -31

xor'ing 111 and -94

xor'ing 111 and 2

xor'ing 111 and -120

xor'ing 111 and 127

xor'ing 111 and 0

xor'ing 111 and 0

xor'ing 111 and 0

xor'ing 111 and 0

xor'ing 111 and 0

xor'ing 111 and 0

xor'ing 111 and 0

xor'ing 111 and 0

xor'ing 111 and 0

xor'ing 111 and 0

xor'ing 111 and -57

xor'ing 111 and 115

xor'ing 111 and -33

xor'ing 111 and 2

xor'ing 111 and -120

xor'ing 111 and 127

xor'ing 111 and 0

xor'ing 111 and 0

xor'ing 111 and 1

xor'ing 111 and 0

xor'ing 111 and 0

xor'ing 111 and 0

xor'ing 111 and 0

xor'ing 111 and 0

xor'ing 111 and 0

xor'ing 111 and 0

xor'ing 111 and -19

xor'ing 111 and 9

xor'ing 111 and 64

xor'ing 111 and 0

xor'ing 111 and 0

xor'ing 111 and 0

xor'ing 111 and 0

xor'ing 111 and 0

xor'ing 111 and 47

xor'ing 111 and 47

xor'ing 111 and 47

xor'ing 111 and 47

xor'ing 111 and 47

xor'ing 111 and 47

xor'ing 111 and 47

xor'ing 111 and 47

xor'ing 111 and 0

xor'ing 111 and 0

xor'ing 111 and 0

xor'ing 111 and 0

xor'ing 111 and 0

xor'ing 111 and 0

xor'ing 111 and 0

xor'ing 111 and 0

xor'ing 111 and -96

xor'ing 111 and 9

xor'ing 111 and 64

xor'ing 111 and 0

这些随机元素来自哪里?

最佳答案

在使用 fread() 之前将缓冲区字符数组的所有元素初始化为 0,从而消除了垃圾。

关于短文件上的 C fread() 在文件结束后会产生垃圾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47732691/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com