如何将文件中的每个字符存储到c中的数组中

问题描述 投票:0回答:1

所以我想读取一个文件,然后将每个字符的字符串存储到char数组中。我的输入文件只是一个简单的“ Hello”。我想将此字符串的字符存储到char数组中,所以

arr[0] = H
arr[1] = e
arr[2] = l
arr[3] = l
arr[4] = o

我的代码如下,但不存储每个字符,而是存储整个字符串

int main(void)
{
    FILE *ifp;
    ifp = fopen("inputfile.c","r");     
    int length = 20;
    char arr[length][50];           
    int i = 0;

    while(1)
    {
        char r = (char)fgetc(ifp);
        int k = 0;

        while(r != ',' && !feof(ifp))    
        {             
            arr[i][k++] = r;            
            r = (char)fgetc(ifp);
        }
        arr[i][k] = 0;  

        if(feof(ifp))
        {       
            break;
        }
        i++;
    }

    int j;

    for(j = 0; j <= i; j++)
    {
        printf("%s\n", arr[j] );
    }

    return 0;
}

我在这里得到的是arr[0] = "Hello"而不是arr[0] = Harr[1] = e

我可以从文件而不是整个字符串中逐个字符地存储字符吗?

c arrays char readfile
1个回答
0
投票

正如Barmar已经指出的那样,它是一个二维数组。您可能可以这样做

for(j = 0; j <= i; j++)
{
    int wordlength = strlen(arr[j];
    for (int h = 0; h < wordlength; h++)
    {
        printf("%c\n", arr[j][h] );
    }
}

编辑:您必须包括在内。

© www.soinside.com 2019 - 2024. All rights reserved.