繁体   English   中英

从第12个元素开始将txt文件放入数组

[英]Putting txt File Into Array is Starting at 12th Element

我正在用C编写程序,在其中我从.txt文件读取数据,我的目标是将.txt文件中的每个元素放入数组中。 当我编译并运行程序时,将返回50、55和0的值。 这些是2、7和0的ASCII值(我不确定为什么将这些元素存储为ASCII代码,但是现在还可以)(这意味着自到达.txt文件末尾以来未初始化任何内容)。为什么我的程序没有从头开始读取.txt文件?

...

int main(int argc, char *argv[]){
FILE *inputFile;
char *input = argv[1];
char magicSquareArray[257];

inputFile = fopen(input, "r");

if (inputFile == 0){
    printf("Cannot open file for reading!\n");
    return -1;
}

fscanf(inputFile, "%s", magicSquareArray);
while (!feof(inputFile)){
    fscanf(inputFile, "%s", magicSquareArray);
}

printf("%i\n", magicSquareArray[0]);
int sideSize = magicSquareArray[0];
int squareSize = sideSize * sideSize;
printf("%i\n", squareSize);

fclose(inputFile);

文本文件:

3
4,3,8
9,5,1
2,7,6

也许您想要下面的代码。 (但是,我以下面的方式认为。 要准备一个数组,请读取第一个数字,分配一个数值以将其读入其中。

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[]){
    FILE *inputFile;
    char *input = argv[1];
    char magicSquareArray[257];
    int ch, len;
    inputFile = fopen(input, "r");

    if (inputFile == 0){
        printf("Cannot open file for reading!\n");
        return -1;
    }
    len = 0;
    while((ch = fgetc(inputFile)) != EOF && len < sizeof(magicSquareArray)-1){
        magicSquareArray[len++] = ch;
    }
    magicSquareArray[len] = 0;
    fclose(inputFile);

    printf("%c\n", magicSquareArray[0]);
    int sideSize = atoi(magicSquareArray);
    int squareSize = sideSize * sideSize;
    printf("%i\n", squareSize);

    return 0;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM