将文本文件读入数组,通过函数打印

时间:2014-10-24 16:37:33

标签: c arrays function

我的问题是我正在尝试将文本文件中的字符读入数组。数组的原始大小比文本文件中的条目数长,但我只想打印出所使用的数组的索引。然后应该通过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;
        }
    }

1 个答案:

答案 0 :(得分:0)

的fscanf(消息, “%C”,&安培;加密[K]);没有新行'\ n'
并加密[g]