gpt4 book ai didi

c - C中使用fopen打开文本文件后,多了字符

转载 作者:行者123 更新时间:2023-11-30 14:26:38 27 4
gpt4 key购买 nike

我需要读取 x*[tab]*y*[tab]*z*[tab]\n* 格式的数据表,所以我使用 fopenfgetc 用于流字符。当c==EOF时循环结束。 (c 是字符。)但我对此遇到了困难,因为它溢出了我的数组。经过一些调试后,我意识到最后一行之后打开的文件包含:

Northampton Oxford 68 ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ[...]ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍýýýý««««««««îþîþ

那是什么?为什么它没有出现在我的纯文本文件中?我该如何克服这个问题?

destination = fopen("ukcities.txt", "rt"); // r = read, t=text 

if (destination != NULL) {
do {
c = fgetc (destination);
if (c == ' ') {
temp_input[i][n] = '\0';
i++;
n=0;
} else if (c == '\n') {
temp_input[i][n] = '\0';
printf("%s %s %s \n", temp_input[0], temp_input[1], temp_input[2]);
i = 0;
n=0;
} else {
temp_input[i][n] = c;
n++;
}
} while (c != -1);

return 1;
} else {
return 0;
}

最佳答案

看着我的 Crystal 球,我发现 fread 或您正在使用的任何东西(显然是 fgetc 这使得它更加真实)不会以 null 终止它读取的数据,并且您尝试将其打印为 C 字符串。以 NUL 字符(0)结束数据,然后它将正确打印。

关于c - C中使用fopen打开文本文件后,多了字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8873308/

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