gpt4 book ai didi

char数组中的C随机字符

转载 作者:太空狗 更新时间:2023-10-29 16:06:26 25 4
gpt4 key购买 nike

我正在制作一个加载小文本文件的 c 程序。我将文本文件的读取内容存储在 char 数组 中。这是加载文件的函数。

void load_text_file(char* filename) {
FILE *fp;
char *buf = malloc(255 * sizeof(char));
if (!buf) return NULL;

fp = fopen(filename, "r");
fgets(buf, 255, (FILE*)fp);

int i;
for(i=0;i<255;i++) {
printf("%d - %c\n", i, buf[i]);
}
}

当 for 循环打印输出时,就会发生这种情况。 (这是输出的简化版本,我不想把所有 255 个字符都放在这个问题中。)

0 - H
1 - e
2 - l
3 - l
4 - o
5 -
6 - W
7 - o
8 - r
9 - l
10 - d
11 - !
//Random chars past this point
12 -
13 -
14 - „
15 -
16 - „
//etc... etc... etc...
96 - Å
97 -
98 -
99 - Å
100 - å
101 - è
102 -
//etc... etc... etc...
//all the way up to 255 chars

我不确定是什么原因造成的。
我想知道是什么原因造成的,我该如何解决。

最佳答案

你应该将你的 buf 打印为:

printf("%s\n", buf);

您看到的垃圾是使用 malloc 为您的 buf 分配的未初始化 RAM 内存,并且未被 fgets 触及。

关于char数组中的C随机字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31222743/

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