我的问题是我正在尝试将文本文件中的字符读入数组。数组的原始大小比文本文件中的条目数长,但我只想打印出所使用的数组的索引。然后应该通过printCharacterArray函数打印该数组。
程序编译并运行正常,甚至可以打印数组中字符所在的空白行。问题显然是没有任何文本文件条目被读入数组。建议?感谢。
#include <stdio.h>
#include <stdlib.h>
#define FILENAME "hello.txt"
#define SIZE 200
//function prototype
int printCharacterArray(char encrypted[], int k);
int main()
{
//Declare variables
int key;
int k = 0;
int retValue;
FILE *message;
//Create array
char encrypted[SIZE]={'\0'};
//Open file
message = fopen(FILENAME,"r");
//check that file opened
if (message == NULL){
printf("File didn't open.");
fclose(message);
}else{
fscanf(message,"%d\n",&key);
//set loop to read rest of file
while (!feof(message)){
fscanf(message,"%c\n",&encrypted[k]);
k++;
}
fclose(message);
}
//Call and catch function
retValue = printCharacterArray(encrypted, k);
if (retValue==0){
printf("Exit failure, retValue = 0");
return EXIT_FAILURE;
}else{
printf("Exit success, retValue != 0");
return EXIT_SUCCESS;
}
}
//Function Definition
int printCharacterArray(char encrypted[ ], int k){
int g;
if (k==0){
printf("EXIT FAILURE, k = 0");
return EXIT_FAILURE;
}else{
for (g=0; g<=k; g++){
printf("%c\n",encrypted[k]);
}
return EXIT_SUCCESS;
}
}
答案 0 :(得分:0)
的fscanf(消息, “%C”,&安培;加密[K]);没有新行'\ n'
并加密[g]