我正在测试以确保我的文件读取并且我的转换为大写正常,但是当我打印数组时,数组中的第一个字母不会显示在输出中。这是有问题的功能:
int processFile(){
int i;
i = 0;
if (!(fp = fopen("congress.txt", "r"))) {
printf("congress.txt could not be opened for input.");
exit(1);
}
while (!feof(fp)){
fscanf(fp, "%c", &origFile[i]);
i++;
}
for (i = 0; i <= SIZE; i++){
if (origFile[i] >= 'a' && origFile[i] <= 'z') upperFile[i] = origFile[i] -= 32;
}
for(i = 0; i <= SIZE; i++){
printf("%c",upperFile[i]);
}
}
答案 0 :(得分:3)
我猜测congress.txt中的第一个字符是一个大写字符。如果你看一下这条线:
if (origFile[i] >= 'a' && origFile[i] <= 'z') upperFile[i] = origFile[i] -= 32;
正在跳过所有大写字符,而不是写入upperFile。您可能会在输出中注意到所有句子的首字母都缺失了。