gpt4 book ai didi

c - 循环文本文件时出现不需要的字符

转载 作者:行者123 更新时间:2023-11-30 15:29:38 25 4
gpt4 key购买 nike

我有一个仅包含字母的文本文件,如下所示:

AAAA
BBBB
CCCC

我正在尝试遍历文件并将所有字符保存在字符串中。这是我的代码:

// Set sequence variable to sequence in file
for ( seqlength = 0; (symbol = getc(f)) != EOF;){ //seqlength is an int
//symbol is a char
//f is a file pointer
if ( symbol != '\n'){
sequence[seqlength] = symbol; //sequence is a char[]
seqlength++;
}
}

当我打印出 printf("sequence: %s length: %d\n",equence, strlen(sequence));
在此循环完成后,我按预期得到了 AAAABBBBCCCC 字符串,但在最后一个 C 之后有一堆垃圾字符,并且当 12 时 strlen 为 22预期的。

任何人都可以提供一个简单的修复程序以使其正常工作吗?

谢谢

编辑:我还想补充一点,每次运行代码并将其打印到控制台时,非字母数字字符似乎都会发生变化。在 Code::Blocks 中使用 GCC 编译器。

最佳答案

您看到的垃圾是未能以空字符终止字符串的结果。

for ( seqlength = 0; (symbol = getc(f)) != EOF;){   //seqlength is an int
//symbol is a char
//f is a file pointer
if ( symbol != '\n'){
sequence[seqlength] = symbol; //sequence is a char[]
seqlength++;
}
}

// Terminate string with the null character.
sequence[seqlength] = '\0';

关于c - 循环文本文件时出现不需要的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26154646/

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