我需要在表格中读取x*[tab]*y*[tab]*z*[tab]\n*
格式的数据,所以我使用fopen
和fgetc
来流式传输字符。当c==EOF
环路正在结束。 (c
是字符。) 但是我遇到了困难,因为它溢出了我的数组。做一些调试后,我意识到,在最后一行后,打开的文件包含:使用fopen打开C文本文件后,它具有附加字符
北安普顿牛津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;
}
投票结束:您还没有提供您的代码,因此很难说出这里提出的问题。 – 2012-01-15 20:56:57
'fgetc'和“c是字符”不匹配。 'fgetc'返回一个'int'。如果你将它的返回值存储在更小的东西中,你将会被烧毁。 – Mat 2012-01-15 20:58:34
Í的字节值是0xcd。谷歌0xcdcdcdcd并采取第一击。 – 2012-01-15 21:03:47